الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نقاش حول الأعداد الأولية

مغلقرائج
بدأه Asm4all في 6 أكتوبر 2005 · 41 رد · 22,003 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تابع سلسلة شغل مخك .....

باستخدام لغتك المفضله - حل هذه المسأله :

الأعداد الأوليه هي الأعداد التي تقبل القسمه على نفسها وعلى الواحد الصحيح فقط

وهي المتتاليه

2,3,5,7,11,13,17,19,23,....

حيث الحد الأول من هذه المتتاليه قيمته (2) والحد الخامس قيمته (11) والحد التاسع قيمته (23) ..

المطلوب : برنامج ندخل اليه ...

أولا : رقم الحد ليعطي قيمته

ثانيا : قيمة الحد ليعطي ترتيبه اذا كان عدد أولي

مثال 1:

ادخل رقم الحد :

رقم الحد : 5 >>> قيمة الحد : 11

رقم الحد : 8 >>> قيمة الحد : 19

مثال 2:

ادخل قيمة الحد :

قيمة الحد : 11 >>> رقم الحد : 5

قيمة الحد : 19 >>> رقم الحد : 8

قيمة الحد : 25 >>> العدد غير اولي

تم تعديل هذه المشاركة بواسطة Asm4all في 6 أكتوبر 2005 في 22:45

#2

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

التعريف الصحيح للعدد الأولي هو:

أي عدد مجموع قواسمه إثنين

أو لديه قاسمين

1 ليس عدد أولي :D

ملف تنفيذي لمحاولتي مرفق

بدون مراعات عدة أخطاء

كما يقال Quick & Dirty

مكتوب بدلفي،

سأرفق السورس بعد مشاركة باقي الإخوة

Awali30.rar

تم تعديل هذه المشاركة بواسطة DeltaAziz في 6 أكتوبر 2005 في 17:04

d4baa0.gif
#3

أنا والله قلت كده لكن ألمسأله جايه بنفس الشكل لقيتها في وسط الملفات عندي فقلت أرفعها

06_10_05_06_31_36_1128605496EXAM3.JPG

عموما مش هي دي المشكله , نفض للواحد :lol:

تم تعديل هذه المشاركة بواسطة Asm4all في 6 أكتوبر 2005 في 16:25

#4

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

اخي Asm4all ارحب بك و بكل المو جودين

لا امزح ....... الحمد لله سجلت بالجامعة تخصص انظمة معلومات حاسوبية و إن شاء الله اول ما اعرف اعمل برنامج ان شاء الله رح ابذل طاقتي بهذا البرنامج ان شاء الله

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

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

  اخي    Asm4all    ارحب بك  و بكل المو جودين

  لا امزح  ....... الحمد لله  سجلت بالجامعة  تخصص انظمة معلومات حاسوبية  و إن شاء الله اول ما اعرف اعمل برنامج  ان شاء الله  رح ابذل طاقتي بهذا البرنامج  ان شاء الله 

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

منتظرك على أحر من الجمر يا عمار :D

#6

ماشي بتتخوت اه ماش بسيطة (بمزح) بس والله ان اشاء الله رح اعمله انتظر

#7

Is 1 a prime number?

I think prime numbers start from 2 not from 1

#8
private int GetPrimeOrder(int number)
  {
 	 
 	 int primeOrder=0;
 	 for(int i=2;i<=number;i++)
 	 {
    if(IsPrime(i))
   	 primeOrder++;
 	 }
 	 return primeOrder;

    
  }
  bool IsPrime(int number)
  {
 	 
 	 for(int i=2;i<=number/2;i++)
 	 {
    if(number%i==0)
   	 return false;  
 	 }
 	 return true;
  }
  private int GetPrimeNumber(int order)
  {
 	 int primeOrder=0;
 	 int number=1;
 	 while(primeOrder<order)
 	 {
    number++;
    if(IsPrime(number))
   	 primeOrder++;
    

 	 }
 	 return number;
  }

انا حللتها على اعتبار ان الprime numbers تبدا من 2

والسلام عليكم

#9

Hأعتقد لو تم تعديل السؤال لأسرع خوارزمية سيكون أفضل , لأن الأعداد الأولية واضحة بأنا التي تقبل القسمة على نفسها وواحد فقط ,,

فالكل يمكنه تصميم برنامج كهذا , لكن الأسرع ؟

فكرة أخرى , هل العدد 38754743827643827643821760900005324213853217312785432187653214676

أولي أم غير أولي ؟ :D

فكرة أخرى ,, أوجد مليون عدد غير أولي متتالية , يعني 7900000 و 7900001 و 7900002 و 7900003 ...... حتى 8900000 , كل هذه الأعداد غير أولية (" هذا مجرد فكرة وليست غير أولية هنا كلها طبعا , لكن أقصد أنها متتالية " )

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

:D :D

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#10

تم تعديل السؤال , الأعداد الأوليه تبدأ من 2 , 1 لا يعتبر عدد أولي

تم تعديل هذه المشاركة بواسطة Asm4all في 6 أكتوبر 2005 في 22:48

#11

الحل بلغة سي شارب , خمس دقائق اخرى وارفق الحل باستخدام السي فقط أقوم بعملية التحويل

Asm4all.zip

#12
HGB كتب:

Hأعتقد لو تم تعديل السؤال لأسرع خوارزمية سيكون أفضل , لأن الأعداد الأولية واضحة بأنا التي تقبل القسمة على نفسها وواحد فقط ,,

فالكل يمكنه تصميم برنامج كهذا , لكن الأسرع ؟

خلاص انت الحكمفي الموضوع ده ايه رايك :D ؟

وآدي كود السي

Asm4all.rar

#13

هناك طريقتين للحل!!

الأولى وضعها الأخ Asm4All .. مع أنك لازم كنت تطول بالك شوي ، قوانين شغل مخك أنك ماتضح الحل بنوب غير إذا وضعو الأخوة محاولتهم بالحل :) ممكن تضع مساعدة من أجل ايجاد الحل إذا ماحدا وضع الحل فهي مشكلة الأعضاء ..

طريقة Asm4All تعمل على أي رقم كان ولكنها بطيئة حيث من أجل كل رقم فيها حلقة تبدأ من 2 إلى جذر الرقم.

إذا أردنا الحل بخورازمية خطية فيجب استخدام مصفوفة بحجم أكبر عدد نريد أن ندعمه في البرنامج. مثلا إذا كان أكبر عدد هو 100 فالمصفوفة يجب أن تحتوي على 101 عنصر (من 0 إلى 100). والخوارزمية مبنية على ايجاد الأعداد الأولية والغير الأولية في المصفوفة بطريقة سريعة .

مثلا نحن نعرف أن العدد 2 أولي ، ولكن أي مضروب له غير اولي اي 4 و 6و 8و 10 و ... غير اولية .

نفس الأمر ينطبق على 3 فهو اولي ولكن اي مضروب له غير اولي اي 6 و 9 و 12 و .. غير اولية ..

البرنامج جدا سريع ولكنه يستخدم ذاكرة اكبر من أجل السرعة ..

الكودمرفق لسهولة القرائة ..

primes.c.txt

تم تعديل هذه المشاركة بواسطة هاني الأتاسي في 7 أكتوبر 2005 في 01:11

Coding on the Cloud and for the Cloud!

My Blog

#14
اقتباس
مع أنك لازم كنت تطول بالك شوي ، قوانين شغل مخك أنك ماتضح الحل بنوب غير إذا وضعو الأخوة محاولتهم بالحل

بالفعل أنا انتظرت الى ان تم وضع محاولتين للحل , والموضوع كما قال هيثم مش صعب

اقتباس
إذا أردنا الحل بخورازمية خطية فيجب استخدام مصفوفة بحجم أكبر عدد نريد أن ندعمه في البرنامج. مثلا إذا كان أكبر عدد هو 100 فالمصفوفة يجب أن تحتوي على 101 عنصر (من 0 إلى 100). والخوارزمية مبنية على ايجاد الأعداد الأولية والغير الأولية في المصفوفة بطريقة سريعة .

طبعا الطريقه سريعه لكنها تستهلك الذاكره ومحدودة لعدد محدود من العناصر

#15

آسف لم أرى سوى حل واحد :) لذلك تجاهل ملاحظتي :)

طبعا يجب الاختيار بين السرعة أو الذاكرة .. وأيضا هل تريد ايجاد حل لرقم واحد أو مجموعة كبيرة من الأرقام .. وهذا يعتمد على حسب التطبيق فإذا كان مجال الأعداد الأولية بين 1 إلى 100K فاستخدام 400 كيلو بايت من الذاكرة في العصر الحالي من الكمبيوترات لا يذكر ابدا ..

فقط ليستفيد الأعضاء هل يمكن أن تشرح لماذا اخترت جذر الرقم عبارة عن الحد الفاصل :rolleyes:

Coding on the Cloud and for the Cloud!

My Blog

#16

ببساطه لأن جذر الرقم هو أكبر معامل له لن يتكرر مره اخرى , فلما لم أصل مثلا الى النصف ؟ لأنني اختبرت 2 ولم تقبل القسمه , ولم لم تصل الى الثلث ... وهكذا

فأعلى قيمه يمكن أن تضرب في أعلى قيمه , هي الجذر يضرب في نفسه فيعطيك الرقم

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

#17

حسنا ثلاث إستثناءات لطريقة هل يقبل العدد القسمة على الأعداد التي أصغر منه :

1) المضروب كما وضح هاني ,, ومعناه ليس المضروب Factorial بالمفهوم العام , وإنما ضرب العدد في n لكل n=2,3,4...etc

2) أن نجرب القسمة من جذر العدد وحتى 2 فقط

3) كل الأعداد الزوجية غير أولية طبعا , وبذلك نختصر البحث للنصف .

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#18

لكي لانخرج من النص , ونضع شغل مخك (31) فما زلنا في الأعداد الأولية ,,

أعود وأقول من يوجد لنا 1000 عدد غير أولي متتالية ,,, يعني 102,103,104,105 ..... حتى 1101 ,, بحيث تكون كل هذه الأعداد غير أولية , وبأي طريقة :D

وفي النهاية سنكتشف أنها فكرة رابعة لتقليل البحث في إختبار العدد الأولي ,, :rolleyes:

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#19
HGB كتب:

لكي لانخرج من النص , ونضع شغل مخك (31) فما زلنا في الأعداد الأولية ,,

أعود وأقول من يوجد لنا 1000 عدد غير أولي متتالية ,,, يعني  102,103,104,105 ..... حتى 1101 ,, بحيث تكون كل هذه الأعداد غير أولية , وبأي طريقة :D

وفي النهاية سنكتشف أنها فكرة رابعة لتقليل البحث في إختبار العدد الأولي ,,  :rolleyes:

اعن نفسي وباستخدام الطريقه السابقه , كنت حابحث عن العدد الأولي واحفظه ثم العدد الأولي الذي يليه , وفي حالة ما يكون الفرق بين الرقمين اكبر من 1001 , يبقى العداد من بعد الرقم الأول الى ما قبل الرقم الثاني

لكن بما انك بتقول ان هناك طريقه اخرى , فنحن في الانتظار :D

#20

الطريقة ومافيها إن كنتم لاتريدون :D كالتالي :

إذا أردنا الحصول على 1000 عدد غير أولي متتالية , فهي تكون :

1001!+2

1001!+3

1001!+4

1001!+5

1001!+6

etc

1001!+1001

كل هذه الأعداد غير أولية , لأن أي عدد فيها على الأقل تقبل القسمة على عدد من الأعداد من 2-1001 , ويمكن التجربة للتأكد ,

عموما الأعداد الأولية حيرت العلماء ولم يجدو لها صيغة ثابته حتى الآن , وإن وجدو فإن علم arithmatic سيتطور بشكل كبير جدا عما هو عليه الآن ...

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#21

أولا لتوضيح سبب اختيار الجذر كحد اقصى للاختبار

اليكم هذه الصوره توضح المنحنى Y = Z/X حيث Z هو الرقم المراد اختباره

08_10_05_07_09_10_1128780550Sqrt.jpg

فلو نظرنا الى المنحنى الأزرق سترى أنه متماثل حول الخط Y=X الأخضر ونقطة تقاطع الخط مع المنحنى هي عند النقطه

Y=X=Z^(1/2)

وعند اختبار قسمة Z/X في منطقه من 1 الى جذر Z فان النتائج تكون في Y من جذر Z الى Z

وبم أن المنحنى متماثل فاكيد بالتبديل بين X , Y ستعطي نفس النتيجه , لذلك نختبر نصف المنحنى فقط

فاين نصف المنحنى ؟

من الرسم يتضح أن نصف المنحنى هو عند جذر Z , بعدها يعطي نتائج حصلنا عليها من قبل

تم تعديل هذه المشاركة بواسطة Asm4all في 8 أكتوبر 2005 في 17:01

#22

شكرا Asm4All على توضيحك :rolleyes: فهو توضيح أفضل من كافي .

هيثم، بصراحة أنا مافهمت بنوب كيف حصلت على هذه ال1000 عدد المتتالية .. :blink: ولكن أعتقد فيها مشكلة ..

1001! + 2 = 1001 * 1000 * 999 * 998 * ..... * 3 * 2 * 1 + 2

أخرج الحد 2 خارج قوس:

= 2 * (1001 * 1000 * 999 * 998 * .... * 3 * 1 + 1)

وبالتالي العدد 1001! + 2 يقبل القسمة على 2؟ كيف تقول أنه أولي؟

ونفس الشي + 3 ، يقبل القسمة على 3 و هكذا ...

إذا كان تحليلي خطأ فسامحني لأني هلأ فايق وراح علي السحور :(

تم تعديل هذه المشاركة بواسطة هاني الأتاسي في 8 أكتوبر 2005 في 17:41

Coding on the Cloud and for the Cloud!

My Blog

#23

السلام عليكم،

موضوع جميل،

هل يمكن أن تكتبوا لي كود بأي لغة كانت لإيجاد أكبر عدد أولي؟؟

طبعاً كلنا نعرف أن الأعداد لا منتهية حتى الأن،

ولكن هذا لا يمنع من وجود أكبر رقم أولي يعلمه الإنسان،

هل تستطيعون كتابة كود يستطيع إيجاد عدد أولي كبير جداً؟

مثلاً عدد أولي من 10 منازل ( مراتب)

**********

أمر آخر

الكود الذي تستخدمونه لمعرفة فيما إذا كان العدد أولي أم لا أعتقد أنه غير جيد للأعداد الكبيرة جداً..

عندما نتكلم عن أعداد أولية كبيرة يفضل استخدام Euclidean Algorithm في فحص هذا العدد فيما إذا كان أولياً أما لا

تحية طيبة،

اللهم طهر أرض فلسطين من العملاء والخونة

#24
اقتباس
أولا لتوضيح سبب اختيار الجذر كحد اقصى للاختبار

اثبات نظري يا اسمبلي للجميع

27_11_05_11_02_56_11331181761.JPG

اضافة الى كل ذلك هناك طريقة سهلة جدا للحصول على عدد اولي عملاق خذ الاعداد الاولية المعروفة واضربها ببعضها واضف واحد الى الناتج ستحصل كل مرة على عدد اولي جديد

ان مشكلة الاعداد الاوليه تعتبراهم المشاكل الموحودة في نظرية الاعداد لمل لها من تطبيقات هامة في مجال التشفير

تم تعديل هذه المشاركة بواسطة romanof في 28 نوفمبر 2005 في 01:27

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#25
اقتباس
27_11_05_11_02_56_11331181761.JPG

ايه الحلاوه دي دي يا نوووووف , إثبات رياضي جامد :D

:lol: الرسم والحركات دي بيسموها المعنى الهندسي , أكيد شوفت المصطلح ده في كتب قبل كده

هذا الموضوع مغلق.

مواضيع مشابهة