اذهب الي المحتوي
أوفيسنا

ايجاد جميع الاعداد الأولية بين رقمين


الردود الموصى بها

من المعروف ان الأعداد الأولية لا تنقسم إلا على واحد وعلى نفسها

و قد جئتكم بهذا الكود لأيجاد كل الأعداد الأولية بين رقمين

ارجو ان ينال اعجابكم

()Sub prim_between2
Dim m As Integer, n As Integer, y As Integer, x As Integer
Range("a4:h100").ClearContents
Range("a4:h100").ClearFormats

 (m = Cells(1, 2
 (n = Cells(1, 4

If m > n Then
Cells(1, 2) = n: Cells(1, 4) = m         
End If

 r = 4: c = 2

 For x = m To n
  (y = Int(x ^ 0.5

   For i = 2 To y
       Do While x Mod i = 0     
       If x Mod i = 0 Then
       GoTo out    
       End If
         Loop    
          Next i

    Cells(r, c) = x 
    With Cells(r, c).Font
      .Bold = True
      .Size = 20
    End With
    
       (With Cells(r, c).Borders(xlEdgeLeft
        .LineStyle = xlDouble
        .Color = -16776961
        .Weight = xlThick
   End With
   
    With Cells(r, c).Borders(xlEdgeTop)
        .LineStyle = xlDouble
        .Color = -16776961
        .Weight = xlThick
    End With
    
     (With Cells(r, c).Borders(xlEdgeBottom
        .LineStyle = xlDouble
        .Color = -16776961
        .Weight = xlThick
    End With
    
    (With Cells(r, c).Borders(xlEdgeRight
        .LineStyle = xlDouble
        .Color = -16776961
        .Weight = xlThick
    End With
   
     (With Cells(r, c
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
                
               c = c + 1

     If c > 8 Then
       c = 2: r = r + 1
     End If
     
       
out:
Next x
Cells(1, 2).Select
   
End Sub




المشكلة في اللغة العربية هي الأقواس
تم تعديل بواسطه سليم حاصبيا
رابط هذا التعليق
شارك

السلام عليكم
أخي الكريم
كود جميل
سلمت يداك

ضبطت موضوع اللغة مع تضبيط خفييف

 

Sub prim_between2()


Dim m As Integer, n As Integer, y As Integer, x As Integer
    [a4:h100].ClearContents
    [a4:h100].ClearFormats


    m = Cells(1, 2)
    n = Cells(1, 4)


If m > n Then Cells(1, 2) = n: Cells(1, 4) = m


 r = 4: c = 2


 For x = m To n
    y = Int(x ^ 0.5)
    
    For i = 2 To y
        Do While x Mod i = 0
            If x Mod i = 0 Then GoTo out
        Loop
    Next i
    
    Cells(r, c) = x
    With Cells(r, c).Font: .Bold = True: .Size = 20: End With
    
    With Cells(r, c).Borders(xlEdgeLeft)
        .LineStyle = xlDouble
        .Color = -16776961
        .Weight = xlThick
    End With
    
    With Cells(r, c).Borders(xlEdgeTop)
        .LineStyle = xlDouble
        .Color = -16776961
        .Weight = xlThick
    End With
    
    With Cells(r, c).Borders(xlEdgeBottom)
        .LineStyle = xlDouble
        .Color = -16776961
        .Weight = xlThick
    End With
    
    With Cells(r, c).Borders(xlEdgeRight)
        .LineStyle = xlDouble
        .Color = -16776961
        .Weight = xlThick
    End With
    
    With Cells(r, c)
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
    
    c = c + 1
    
    If c > 8 Then c = 2: r = r + 1
    
    
out:
Next x
Cells(1, 2).Select


End Sub
رابط هذا التعليق
شارك

أستاذنا الكبير  المهندس / طارق محمود

 

الستاذ الفاضل /سليم حاصبيا

 

أستاذنا الكبير / أبو حنين

 

الأستاذ الفاضل / زمزم

 

السلام عليكم ورحمة الله وبركاته

 

جزاكم الله خيراً على هذا الكود الرائع ولكن عند التطبيق لوحظ انه اعتبر العدد1 عدد أولي وهو عدد غير أولي لذلك طبقت كود أستاذنا الكبير المهندس طارق مع وضع شرط أن العدد لا يساوي 1 في التحقيق من الصحة حتى يؤدي الغرض وقمت أيضاً بعمل التعرف على العدد الأولي من خلال الدوال.

 

 

 

أرقام محصورة بين عددين 1.rar

أرقام محصورة بين عددين2.rar

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

 

أخي الكريم، أشكرك على الكود الجميل غير أنه وكما تفضلت أختنا الكريمة أم عبد الله إذا أردنا الحصول على الأعداد الأولية بين عددين بداية من 1 أو حتى بداية من 0 فإن الكود يعتبرهما عددين أوايين وهذا خطأ، لذا قمت بتعديل طفيف على الكود حتى لا يعتبر الكود العددين 0 و 1 أوليين (وحتى إن وُضعت بالخطأ أعداد سالبة فإن التعديل على الكود يتجنب كل هذه القيم وبالتالي يعطي كل الأعداد الأولية المطلوبة بداية من 2)... أرجو أن يكون التعديل على الكود مفيدا ومقبولا...

 

أخوك بن علية

 

المرفق : تعيين الأعداد الأولية بين عددين.rar

  • Like 1
رابط هذا التعليق
شارك

أستاذنا العبقري الفذ / بن عليه حاجي

 

السلام عليكم ورحمة الله وبركاته

 

جزاك الله خيراً على هذا التعديل الرائع وزادك الله من فضله وعلمه وجعل جميع أعمالك الرائعة في ميزان حسناتك. لك كل التحية والتقدير.

رابط هذا التعليق
شارك

أستاذنا الكبير  المهندس / طارق محمود

أستاذنا الكبير / أبو حنين
الأستاذ الفاضل / زمزم

الأخت ام عبدالله  المحترمة

السلام عليكم ورحمة الله وبركاته

من قال لكم ان العدد واحد غير أولي , فهو يطبق شروط العدد الأولي بحذافيرها

إذ انه ينقسم على واحد و على نفسه فقط

رابط هذا التعليق
شارك

الأستاذ الفاضل /سليم حاصبيا

 

 

السلام عليكم ورحمة الله وبركاته

 

نعم العدد الأول ينطبق عليه الشروط أنه يقبل القسمة على الواحد وعلى نفسه ولكن الشروط ناقصة لأن من شروط العدد الأولي بإضافة إلى هذه الشروط أن يكون للعدد قاسمين العدد نفسه والعدد واحد والعدد واحد له قاسم واحد فقط بمعنى مثلاً العدد 5 له قاسمان هما {1 ، 5 }أما العدد واحد قاسم واحد فقط {1}

  • Like 1
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information