البرمجة

توليف الأعداد الأولية الدائرية في بايثون بشكل متقن

في سعيك لتحقيق هدفك في كتابة دالة تقوم بعرض أول n أعداد أولية دائرية، يمكنني أن أقدم لك تعديلات على الكود الخاص بك. قبل ذلك، دعني أشرح الخوارزمية التي ينبغي عليك اتباعها:

  1. تعيين عددين، واحد لتتبع عدد الأعداد الدائرية المعروضة والآخر لتتبع عدد الأعداد الأولية المفحوصة.
  2. في حلقة تكرار، قم بفحص ما إذا كان العدد الحالي هو عدد دائري وأولي في الوقت نفسه.
  3. إذا كان كذلك، قم بطباعته وزيادة عدد الأعداد الدائرية المعروضة.
  4. إذا كان العدد الحالي ليس أوليا، انتقل إلى العدد التالي دون زيادة عدد الأعداد الدائرية المعروضة.
  5. انتقل إلى العدد التالي وكرر العملية حتى تصل إلى عدد الأعداد الدائرية المطلوبة.

الآن، سأقوم بتعديل الكود الخاص بك بناءً على هذه الفكرة:

python
def is_prime(num): if num < 2: return False for i in range(2, int(num**0.5) + 1): if num % i == 0: return False return True def is_palindrome(num): return str(num) == str(num)[::-1] def display_palindromic_primes(n): count = 0 num = 2 while count < n: if is_prime(num) and is_palindrome(num): print(f"{num:<5}", end="") count += 1 if count % 10 == 0: print() # Move to the next line after displaying 10 numbers num += 1 # Test the function display_palindromic_primes(20)

هذا الكود يقوم بتحقيق ما تريد. يستخدم دوال فرعية لفحص ما إذا كان العدد أولياً ودائرياً، ومن ثم يقوم بعرض الأعداد بالشكل المطلوب.

المزيد من المعلومات

في هذا السياق، يمكننا إضافة المزيد من المعلومات لتعزيز فهم القارئ حول الكود وعملياته. يمكننا التطرق إلى بعض النقاط المهمة في الشرح، مثل:

  1. تحقق العدد الأولي:

    • تم تعريف دالة is_prime للتحقق مما إذا كان العدد هو عدد أولي أم لا.
    • يتم فحص الأعداد الأولية ببساطة باستخدام حلقة تكرار تتحقق من عدم قابليتها للقسمة على أي عدد آخر غير 1 ونفسه.
  2. تحقق العدد الدائري:

    • تم تعريف دالة is_palindrome لفحص ما إذا كان العدد هو دائري.
    • يتم تحويل العدد إلى سلسلة نصوص والتحقق مما إذا كان يقرأ نفسه عند عكسه.
  3. عرض الأعداد:

    • تم تعريف دالة display_palindromic_primes لعرض الأعداد الأولية الدائرية.
    • تستخدم حلقة تكرار للتنقل بين الأعداد وتحقق إذا كان كل عدد هو واحد من الأعداد الأولية الدائرية.
    • يتم طباعة الأعداد بشكل متناسق، حيث يتم عرض 10 أعداد في كل سطر.
  4. استخدام النمط f-string:

    • تم استخدام نمط f-string لطباعة الأعداد بشكل أنيق ومتناسق.
    • {num:<5} يضمن أن يتم طباعة العدد باتساع 5 أحرف على الأقل (باليسار).
  5. التحكم في العرض:

    • يتم إدراج فاصلة جديدة (print()) بعد طباعة كل 10 أعداد للتحكم في التنظيم والقراءة.

هذه المعلومات تعزز الفهم الشامل للكود وتقدم توجيهات إضافية حول الأفضليات المستخدمة في الحلقة والدوال الفرعية.

زر الذهاب إلى الأعلى