بسم الله الرحمن الرحيم
بفضل الله تعالى ..ثم بجهود الإخوة محمد ومصطفى جزاهما الله خيراً ...دخلت عالم python الصغير ...
المهم وبعد المقدمات ... هذا البرنامج رياضي بحت .. حيث يقوم بتخزين 100000رقم أولي ...ثم يأخذ من المستخدم ترتيب الرقم الأولي ويعرضه
مثلاً الرقم الأولي الذي ترتيبه 10 هو 29 والذي ترتيبه 2 هو 3 ..وهكذا...
ينتهي الإدخال عند إدخال الرقم 0 ..
طبعاً لغة python بطيئة جدا جدا مقارنة مع C مثلا والتي تشتغرق 0.01 من الثانية مقابل 10 ثواني لpython
فهل هناك خطأ في استعمال الدوال مثلاً ... أو نوع الlist مثلا؟؟
الجواب الذي يجعل التنفيذ أقصر هو الجواب المنتظر ... أما إن كانت python لا يمكنها العمل أسرع من ذلك ...فاعتبروا البرنامج هدية مني ![]()
(طبعاً من يمكنه إعطاء خوارزمية أسرع سيكون خارقاً للعادة ..بالتأكيد سأرشحه كإجابة )
i=1
p=[0,2]
while i<1299711:
i+=2
j=1
while i>p[j]**2 and i%p[j]!=0:
j+=1
if i<p[j]**2:
p.append(i)
n=input()
while n!=0:
print p[n]
n=input()والسلام عليكم ورحمة الله وبركاته
____________________
ملاحظة : من يمكنه أيضاً اختصار الكود بمقدار أكثر من 20 حرف سيكون إجابة مقبولة كذلك بشرط ألا يزيد وقت التنفيذ عن البرنامج الحالي ..
