كود الاعداد الاولية بلغة البايثون

كود بلغة البايثون لوجود عددين على انه العددين اوليين ام لا.

ارجو من الاعضاء التى لهم خبرة فى بلغات البرمجة ان يشاركوا بكتابة كود الاعداد الاولية بلغة البرمجة الخاصة بهم.

هذا رابط :

http://up.harajgulf.com/do....

اقتراحتكم حول الموضوع

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

لا ادري ماتحاول فعله بالضبط ؟ التحقق من ان العددين اولين ؟

لا ادري لما تعقد الامور و ايضا ال Complexity هي O(n^2)

هذا naive algorithm ليس سئ جدا ايضا ال complexity هي O(sqrt(n))

اقتراح لتحسين الكود

بدلا من استدعاء math.sqrt قم برفع العدد الى القوة 0.5

for i in xrange( 3, int(x**0.5)+1, 2 ):

@محمد عزيز الكناني قمت بعمل benchmark بسيط math.sqrt كانت اسرع بفارق بسيط

هذا هو الكود

وهذه النتيجة على جهازي

ahmed abdulla أضف ردا

@محمد عزيز الكناني حضرتك قصدك ان الكود ضعيف من ناحية الخوارزمية التى يعمل عليها

يعنى يجب ان يكون مبسط بهذا الشكل :

zakariamouhid أضف ردا

هذا البرنامج برمجته إطلع على الكود الخاص به

تم إستخدام لغة javascript

ahmed abdulla أضف ردا

@zakariamouhid رائع لقد اعجبنى البرنامج بالتوفيق

لماذا عدد اكبر من 9؟

@afaki لانه الاخ @zakariamouhid يعمل على القسمة على 2 فاذا كان العدد 9 سوف يكتب 9 دون اى شئ واذا كتبت 2 سوف يفعل كما يفعل 9 لكن مع 7 و 5 يعمل لكن لا افهم لماذا لا يعمل مع 3

ليكن العدد المدخل هو 19

سيبدأ البرنامج بحساب باقي قسمة 19 على 2 ( 1 = 2%19 )

فإذا وجد الباقي 0

يتوقف و يعطي النتيجة

أما إن كان الباقي يخالف 0

يحسب باقي قسمة 19 على 3 ( 1 = 3%19 )

فإذا وجد الباقي 0

يتوقف و يعطي النتيجة

أما إن كان الباقي يخالف 0

وبنفس الطريقة إلى أن يصل إلى الجذر التربيعي ل 19 الذي يساوي تقريبا 4.358898944

تجربة الأعداد الأصغر من الجذر التربيعي ل 19 يكفي ليبين أنه لا يقبل القسمة على أي عدد أصغر من 19

ثم يقول هذا العدد أولي

0000000000000000

البرنامج يقسم العدد على الأعداد الأصغر من جذره التربيعي

وعندما يقبل العدد القسمة على عدد ما يتوقف عن حساب الأعداد التالية ويجيبك بأن العدد ليس أوليا

0000000000000000

توقف البرنامج عن تجربة الأرقام إن وجد الباقي 0

مهم جدا لكي لا يجهد الحاسب

كل هذا هو تطبيق للطريقة التي تعلمتها في مادة الرياضيات

وهي من فقرات درس الحسابيات في مجموعة الأعداد النسبية Z

حقا لا أعرف

فعندما أجرب عددا أصغر من 9

لايتم فعل أي شيء يعني لا يجيب هل العدد أولي أم لا

أما إن كان العدد أكبر من 9 فإنه يعمل جيدا

الاعداد الأولية اقل من 9 هي 2 , 3 , 5 , 7

يمكنك اضافة شرط اذا كان العدد المدخل من هذه الاعداد تطبع انه اولي

كيفية جعل الحاسب يختبر أعداد كبيرة؟! فالعدد المكتشف إلى الآن عدد خاناته يزيد عن 17 مليون خانة تقريبًا.