في سعيك لتحقيق هدفك في كتابة دالة تقوم بعرض أول n أعداد أولية دائرية، يمكنني أن أقدم لك تعديلات على الكود الخاص بك. قبل ذلك، دعني أشرح الخوارزمية التي ينبغي عليك اتباعها:
- تعيين عددين، واحد لتتبع عدد الأعداد الدائرية المعروضة والآخر لتتبع عدد الأعداد الأولية المفحوصة.
- في حلقة تكرار، قم بفحص ما إذا كان العدد الحالي هو عدد دائري وأولي في الوقت نفسه.
- إذا كان كذلك، قم بطباعته وزيادة عدد الأعداد الدائرية المعروضة.
- إذا كان العدد الحالي ليس أوليا، انتقل إلى العدد التالي دون زيادة عدد الأعداد الدائرية المعروضة.
- انتقل إلى العدد التالي وكرر العملية حتى تصل إلى عدد الأعداد الدائرية المطلوبة.
الآن، سأقوم بتعديل الكود الخاص بك بناءً على هذه الفكرة:
pythondef 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)
هذا الكود يقوم بتحقيق ما تريد. يستخدم دوال فرعية لفحص ما إذا كان العدد أولياً ودائرياً، ومن ثم يقوم بعرض الأعداد بالشكل المطلوب.
المزيد من المعلومات
في هذا السياق، يمكننا إضافة المزيد من المعلومات لتعزيز فهم القارئ حول الكود وعملياته. يمكننا التطرق إلى بعض النقاط المهمة في الشرح، مثل:
-
تحقق العدد الأولي:
- تم تعريف دالة
is_prime
للتحقق مما إذا كان العدد هو عدد أولي أم لا. - يتم فحص الأعداد الأولية ببساطة باستخدام حلقة تكرار تتحقق من عدم قابليتها للقسمة على أي عدد آخر غير 1 ونفسه.
- تم تعريف دالة
-
تحقق العدد الدائري:
- تم تعريف دالة
is_palindrome
لفحص ما إذا كان العدد هو دائري. - يتم تحويل العدد إلى سلسلة نصوص والتحقق مما إذا كان يقرأ نفسه عند عكسه.
- تم تعريف دالة
-
عرض الأعداد:
- تم تعريف دالة
display_palindromic_primes
لعرض الأعداد الأولية الدائرية. - تستخدم حلقة تكرار للتنقل بين الأعداد وتحقق إذا كان كل عدد هو واحد من الأعداد الأولية الدائرية.
- يتم طباعة الأعداد بشكل متناسق، حيث يتم عرض 10 أعداد في كل سطر.
- تم تعريف دالة
-
استخدام النمط f-string:
- تم استخدام نمط f-string لطباعة الأعداد بشكل أنيق ومتناسق.
{num:<5}
يضمن أن يتم طباعة العدد باتساع 5 أحرف على الأقل (باليسار).
-
التحكم في العرض:
- يتم إدراج فاصلة جديدة (
print()
) بعد طباعة كل 10 أعداد للتحكم في التنظيم والقراءة.
- يتم إدراج فاصلة جديدة (
هذه المعلومات تعزز الفهم الشامل للكود وتقدم توجيهات إضافية حول الأفضليات المستخدمة في الحلقة والدوال الفرعية.