تمرين برمجة جافا بسيط | Mersenne prime USING JAVA | مع شرح فيديو
-
2020-04-12
- | softwareEngineer
- | مشاهدات: 1739
(Mersenne prime) A prime number is called a Mersenne prime if it can be written
in the form 2p - 1 for some positive integer p. Write a program that finds all
Mersenne primes with p … 31 and displays the output as follows:
p 2^p –1
2 3
3 7
5 31
كود الحل:
package java3;
import java.util.Scanner;
public class Java3 {
public static void main(String[] args) {
System.out.println("enter a number: ");
Scanner input=new Scanner(System.in);
int n = input.nextInt();
System.out.println("Mersenne prime"+
"numbers smaller than"+
"or equal to "+n);
mersennePrimes(n);
}
static void SieveOfEratosthenes(int n, boolean prime[])
{
for (int i = 0; i <= n; i++)
prime[i] = true;
for (int p = 2; p * p <= n; p++)
{
// If prime[p] is not changed
// , then it is a prime
if (prime[p] == true)
{
// Update all multiples of p
for (int i = p * 2; i <= n; i += p)
prime[i] = false;
}
}
}
static void mersennePrimes(int n)
{
boolean prime[]=new boolean[n + 1];
// Generating primes
// using Sieve
SieveOfEratosthenes(n, prime);
// Generate all numbers of
// the form 2^k - 1 and
// smaller than or equal to n.
for (int k = 2; (( 1 << k) - 1) <= n; k++)
{
int num = ( 1 << k) - 1;
// Checking whether number is
// prime and is one less then
// the power of 2
if (prime[(int)(num)])
System.out.println(num + " ");
}
}
}
شرح الكود :
هذه المادة الدراسية هي ضمن مكتبة
مكتبة اكواد بلغة جافا java للمبتدئين
التعليقات
لا يوجد تعليقات
لاضافة سؤال او تعليق على المشاركة يتوجب عليك تسجيل الدخول
تسجيل الدخول
تسجيل الدخول