اذهب إلى المحتوى
  • 0

برنامج لإيجاد جميع الأعداد الأولية المزدوجه الأصغر من 100 بلغة الجافا

Ezzedine Shlibk

السؤال

اكتب برنامج لايجاد جميع  الاعداد الاولية المزدوجه الاصغر من 100 الفرق بين كل من زوجين 2. متال 

(3,5)

(5,7) 

(11,13) 

(17,19) 

(29,31) 

(41,43) 

(59,61) 

(71,73) 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

أهلا بك،

يمكن تنفيذ المطلوب بالشكل التالي:

public class MyClass{
    
  	// دالة لمعرفة ما إذا كان الرقم أولي
    static boolean isPrime(int n) 
    { 
      	// إذا كان الرقم أصغر من 1 فهو غير أولي لأن الأعداد الأولية تبدأ من 2
        if (n <= 1) 
            return false; 
  
      	// نقوم بالمرور على جميع الأعداد الأصغر من الرقم المراد التحقق منه
        for (int i = 2; i < n; i++) 
          	// إذا كان هنالك عدد أصغر يقبل القسمة على الرقم المتحقق منه فهو غير أولي
            if (n % i == 0) 
                return false; 
  		// إذا قمنا بتجاوز جميع الحالات فهذا يعني أن العدد أولي
        return true; 
    } 

     public static void main(String []args){
       	 // حلقة للمرور على جميع الأعداد بين 2 و 100
         for(int i = 2; i < 100; i++){
           	// إذا كان العدد الحالي أولي والعدد الذي يليه بمنزلتين أولي أيضا نقوم بطباعتهما
            if(isPrime(i) && isPrime(i + 2)){
                System.out.println("(" + i + "," + (i + 2) + ")");
            }
         }
     }
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لدينا خوارزمية sieve التي تقوم بإيجاد الأعداد الأولية بتعقيد زمني سريع (يفضل استخدامها)

class SieveOfEratosthenes 
{ 
    void sieveOfEratosthenes(int n) 
    { 
        // إنشاء مصفوفة بوليانية و تهيئتها "prime[0..n]" 
        // true نفرض جميع الأعداد أولية عن طريق إعطاء القيمة  
        // في حال كان مضاعفا لعدد آخر false كل عدد سنضع قيمة 
        boolean prime[] = new boolean[n+1]; 
        for(int i=0;i<n;i++) 
            prime[i] = true; 
          
        for(int p = 2; p*p <=n; p++) 
        { 
            // بدون تغيير فهو عدد أولي i إذا بقيت قيمة العنصر 
            if(prime[p] == true) 
            { 
                // قاسم لها i ,وجعلها غير أولية  i تعديل مضاعفات العدد 
                for(int i = p*p; i <= n; i += p) 
                    prime[i] = false; 
            } 
        } 
          
        // طباعة الأعداد الأولية 
        for(int i = 5; i <= n; i++) // نلاحظ أن الثنائية 3-5 هي أول ثنائية مقبولة فنبدأ من العدد 5 
        { 
            if(prime[i] == true && prime[i-2] == true) // 2 مع العدد الأصغر منه ب  i نختبرالعدد 
                System.out.println( "(" + (i-2) + "," + i + ")" ); 
        } 
    } 
      
    // اختبار الدالة أعلاه 
    public static void main(String args[]) 
    { 
        int n = 100; 
        System.out.print("Following are the prime numbers "); 
        System.out.println("smaller than or equal to " + n); 
        SieveOfEratosthenes g = new SieveOfEratosthenes(); 
        g.sieveOfEratosthenes(n); 
    } 
}

 

تم التعديل في بواسطة Wael Aljamal
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...