✅Don't Forget to LIKE 👍 SUBSCRIBE 🔔 SHARE ↗ لا تنسى الاشتراك في القناة وتفعيل زر الجرس، ولطفا ادعمنا بلايك وشارك هذا الفيديو مع اصدقائك لتعم الفائدة للجميع
فيه حل تاني ابسط بكتير كل الارقام تقبل القسمة علي نفسها وعلي ١ اي مثل الاولية ولكن ما يميز الاولية انها لا تقبل القسمة ÷٢ ولا تقبل القسمة ÷٣ (لا تعامل معاملة العدد الزوجي ولا الفردي ) بالطبع عدا 2 و 3 Steps 1. Read N 2. Check to be N positiv N>0 ? 3. Check if N = 1 or N= 2 or N= 3 (if yes print >> Prime number , if No then step 4) 4. Checking if N not dividing like the odd and even numbers (so just once ÷2 and ÷3) - If N mod 2 0 (if YES check if N mod 30 if YES too ) >> print prime number If NO in a one or both questions>> print not Prime number
A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself. so 1 is not prime but in this algorithm it is prime
المسألة هي كانت صعبة الفهم علي بالبداية و لكن بعد تكرار الفيديو ؛ تم الأمر 👍 نصيحة لنفسي و لكل حدا عم يتعلم لا تستسلموا ابداً، و أنا سعيد جدا بتعليقات الناس الجميلة و دعمهم للناس اللي بدأت تيئس ، بارك الله في الجميع و بارك الله فيك يا استاذ و رحم الله والديك ❤
بالنسبى للناس الي وجدت صعوبة فى السؤال مثلي 😂 اولا لازم تحاول فالسؤال اكتر من مرة قبل متشوف شرحي للسؤال وان شاء الله تفهم❤ سأقوم بشرح الخوارميات التى حل بها الاستاذ محمد ابوهدود سنعتبر ال 1 عدد غير أولى؛ يمكنك اعتباره أولى كما فعل الأستاذ ولكن ما أعرفه انه غير أولى على العموم هذا ليس المهم دعنا نبدا هذه هى الخطوات التى سار عليها البرنامج : 1. إذا كان العدد 2، فإنه يُعتبر عددًا أوليًا مباشرة ونطبع "prime" وننهي البرنامج. 2. إذا كان العدد غير 2، ننتقل إلى الخطوة الثانية: - نبدأ باختبار ما إذا كان العدد N يقسم على counter دون بقية (N mod counter = 0). - إذا كان الناتج يدل على أن N غير عدد أولي (بمعنى آخر، يمكن تقسيمه على عدد آخر غير 1 ونفسه بدون بقية)، فإننا نطبع "not prime" وننهي البرنامج. - إذا لم يكن الناتج كذلك، ننتقل إلى الخطوة الثالثة. 3. نبدأ الآن في فحص قيمة counter: - إذا كانت قيمة counter تساوي N - 1، فإننا نعرف أنه تم فحص جميع الأعداد من 2 إلى N - 1 بالفعل دون أن نجد أي عدد يقسم N بدون بقية. - في هذه الحالة، نطبع "prime" لأنه لم يتم العثور على أي عامل غير 1 ونفسه. - إذا كانت قيمة counter أقل من N - 1، فإننا نزيد قيمة counter بمقدار واحد ونكرر العملية. باختصار، عندما نصل إلى counter = N - 1 ولا نجد أي عدد يقسم N بدون بقية، فإن ذلك يؤكد أن N عدد أولي، لأنه لا يمكن تقسيمه على أي عدد آخر غير 1 ونفسه دون بقية ## وبالنسبة للطريقة المحسنة كل مابها اننا بدلا من ان نصنع loop تمر على كل الارقام التى نقسم عليها لحد N-1 نجعلها تمر على M (نصف العدد بداية من ال 2) فقط لاننا حينما نصل الى الترقام نصف العدد سيكون دائما الناتج كسر وهذا ما يحقق شرط ال prime فلا داعى لاختباره ونختبر التقسيم على النصف الاول فقط فى النهاية انا أسهبت جدا جدا حتى تكون الامر واضحة وأرجو ذلك فعلا 😂😂 ولا تنسونى من صالح دعائكم فى هذه الأيام المفترجة ❤❤
يا اخ الطريقه الثانيه حق m عندما يكون n mod contener=0 اذا كن الشرط لا نعمل شرط ثاني وهو contener=m اذا كان الشرط لا ف الكونتنر نضيف له واحد فلما نعيد الشرط بيطلع n mod contener=0 فهنا بيطلع نعم لانه كل مره اضفنا واحد الى الكنتنر فصيصبح الكونتنر يساوي n
فائدة رياضية: لا تحتاج لأن تكون قيمة M نصف N بل يكفي أن نتوقف عند الجذر التربيعي لN وبهذا نقلل التكرارات وهذا يكفي فائدة من مدرس رياضيات جزاك الله خير دكتور ويرحم والديك
الأستاذ عم بقول بالتكرار إنو M تساوي N/2 صح؟ ويقف التكرار عند هذه القيمة أنا أقول هناك قاعدة رياضية تقول أنه يمكن تخفيف عدد التكرارات أكثر من ذلك لأنه يكفي أن تقف التكرار عند قيمة الجذر التربيعي للرقم N يعني الأفضل أن تكون قيمة M تساوي الجذر التربيعي لN وبهذه الطريقة نخفف التكرارات لأقل من نصف قيمة N الفكرة كلها إنك تعرف هاي القاعدة الرياضية عشان بالمستقبل تقدر تعرف خياراتك والحلول ارجو أن أكون أوضحت بشكل كافي
من لم يفهم من المرة الأولى فسيفهم من تكرار مشاهدة الفيديو مرتين أو أكثر .. لدي طريقة أخرى للحل لكن معرفة عدة طرق أفضل ( زيادة الخير خير ) .. شكراً لك أستاذ على التوضيح ...
🚫🚫🚫⚠⚠⚠⚠⚠⚠🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫 اولا جزاك الله خير عندي استفسار يا استاذ بالنسبة ل N=1 الفلوشارت تصبح خاطئة لان 1 عدد غير اولي According to flow chart (counter=2>1=N) so N=1 is prime لايك يا اخوان كي يراه الاستاذ 👍👍👍👍
في تعريف الأعداد الأولية في أي كتاب رياضة بأنها الأعداد الصحيحة الموجبة الأكبر من العدد واحد، والتي تقبل القسمة على عددين فقط هما العدد نفسه والواحد دون باقٍ
اي خوارزمية ما تفهمها حاول تكتبها على شكل خطوات صيغهم للبرنامج مثلًا خطوة 1 ابدأ خطوة 2 اقرأ الرقم هل هو اصغر او = 0 اذا نعم،هنا نكتب اول احتمال وهو ان الرقم prime مباشرتًا . اذا لا،لا يساوي 0 هنا نكتبله متغير ونعرف المتغير counter = 2 بعدين اكتب ثاني احتمال هل الرقم الي ادخله المستخدم = قيمة المتغير ؟ لا هنا نكتله ثالث احتمال وهكذا تكتبهم على ورقة وتكتب كل الاحتمالات بهاذي الصيغة وبعدين ترجع تقرأهم وتفهم .
تعديل بسيط عند الدقيقة 3:55 الواحد ليس عدد اولي .... وتعديل اخر يمكن استخدام الجذر التربيعي للعدد المدخل وبهيك بتكون عملت اوبتمايز بنسبة 90% لنو فرضا دخلت عدد 10000 او اكبر .... def is_prime(num): if num
هذا الفيديو رقم 38 طبيعي يكون فيه نوع من الصعوبة، لوو تتكرم أحذف الكومنت لانوو ناس كثيرة مايفهموا كلمة صعب بالمعنى الحقيقي فأول مايشوف كلمة صعب يستسلم.
@@abdelkarimbaya3255 والله فعلا عندك حق بس لما تتقدم بالكورسات وترجع بتحس انها اسهل من الماء انا من الكورس الخامس ورجعت الان وجالس اضحك على نفسي في الماضي لاني كنت اشوف هذي صعبة
جزاك الله خير بعد محاولات لفهم العدد الاولي وطريقة حسبتها اتقنت حتى اعداد كبيرة ولله الحمد وكله بفضل الله وثم تبسيطك وشرحك الوافي اعدت الفيديو بحدو 3 مرات وثبتت # صعب بالنسبة لمن لم يحاول الفهم
thanks for evreything you have done for us im still in lesson 9 but i will watching all the next videos < from morocco> thanks agian 3> i have 20 years old end you are the one i start learned end i will get this prgraming language incha lah 3>
Thanks for your efforts. Algorithm 2 will not work for big numbers because it is O(n/2) which is approximately O(n) and you cant make more than 1e7 operations. However, their is a proof in discrete mathematics that states that you can check all the divisors till sqrt(n) which is more optimized.
جزاكم الله خيرا، شخصيا مافهمت طريقتكم بس أعطاني ChatGPT طريقة اخرى، فما رأيكم؟ هذه الطريقة مبنية على قاعدتين رياضيتين لم تقولوهما في مقطعكم وهو أن العددين 1 و 0 غير أوليين وأنه يمكن الوقوف عند الجذر التربيعي للعدد n عوض النصف. ### Textual Flowchart for Checking a Prime Number: 1. **Start** 2. Read n 3. **Check**: - If n
بشمهندس بارك الله فيك وجعل هذا العمل الرائع في ميزان حسناتك وحسنات والديك ان شاء الله ❤❤❤❤ والله انا اول ما بدأت احل المشكلة لاقيتها صعبة جدا حتى بعد ما شوفت الفيديو كامل كانت صعبة بالنسبالي لاني كنت بتفرج على الفيديو كمجرد مشاهدة لكن أول ما بدأت افكر مع حضرتك بالورقة والقلم والفيديو شغال وافهم كل خطوة ايه الغرض منها حتى لو الخطوة الواحدة هتاخد مني وقت كبير في فهمها وهكذا لحد ما الحمد لله فهمتها 100% بفضل الله اولا طبعا وبفضل شرحك وتسلسل خطواتك الأكثر من رائع ..شكرا لك من كل قلبي يا استاذنا الغاااااالي❤💛
فيه حل تاني ابسط بكتير كل الارقام تقبل القسمة علي نفسها وعلي ١ اي مثل الاولية ولكن ما يميز الاولية انها لا تقبل القسمة ÷٢ ولا تقبل القسمة ÷٣ (لا تعامل معاملة العدد الزوجي ولا الفردي ) بالطبع عدا 2 و 3 Steps 1. Read N 2. Check to be N positiv N>0 ? 3. Check if N = 1 or N= 2 or N= 3 (if yes print >> Prime number , if No then step 4) 4. Checking if N not dividing like the odd and even numbers (so just once ÷2 and ÷3) - If N mod 2 0 (if YES check if N mod 30 if YES too ) >> print prime number If NO in a one or both questions>> print not Prime number
num = int(input("enter a number: ")) count = 2 while count < num: if num % count == 0: print(f"{num} is not prime number") break count += 1 else: print(f"{num} is prime number")
حل الاستاذ معناه نضع counter 2 ولو العدد اصغر او يساوي 2يكون اولى لو اكبر من 2؟ نزيد counter واحد كل مرة ونشوف ناتج القسمة الى ان يصل counter للعدد N_1او لنصف العدد Nفي الطريقة الثانية اذا كانت نتيجة القسمة الباقي صفر اذا عدد غير اولى ولو كان الباقي دائما لايساوي صفر اذن عدد اولى
مرحبا سؤال ممكن اعرف الcounter أو المتغير العشوائي بشكل عام متى بحطه رجعت لحصص التاسيس للمتغيرات فهمتها بس لم استطع فهم متى يتم طرح متغير في تلك المسائل ؟
استاذي في البداية شكرا جزيلا علي مجهودك الكبير ثانيا : انا لاحظت ان اي عدد لو قبل القسمة علي اي رقم من الارقام التالية(2 الي 10 ) ولم يخرج باقي فهو عدد غير اولي فاري انه ليس هناك داعي ل N/2 فقط اختبر الرقم علي الاعداد من 2 ل 10 وهذا هو الكود: ملاحظة اعتبرت انه لن يدخل رقم سالب او العدد 1 او 2 #include using namespace std; int main() { int number =0; cout number; int counter = 2; int M = 10; bool check = true; if(number < 9) { M = number; } for(int i = counter; i < M; i++) { if(number % i == 0) { cout
أستاذ في طريقة أبسط بكثير، أوّل شيء بتأكد أنّ العدد أكبر من صفر ولا يساوي (1, 2, 3, 5, أو 7) فإذا كان يساوي أيّ من هذه الأعداد، هذا يعني بأنّه عدد أوّلي. أمّا إذا كان لا يساوي هذه الأعداد، بجرّب قسمة العدد على الأعداد (2, 3, 5, و 7)، فإذا كان باقي القسمة يساوي صفر عند قسمة العدد على أيٍّ من الأعداد التي ذكرتها فهذا يعني بأنّ العدد مركّب وليس أوّلي، أمّا إذا كان باقي القسمة على كل الأعداد التي ذكرتها لا يساوي صفر، فهذا يعني بأنّه عدد أوّلي. بحيث إذا كان العدد مركب يجب أن يقسم على أحد هذه الأعداد (2, 3, 5, 7), على سبيل المثال العدد 4 يقبل القسمة على2، العدد 6 يقبل القسمة على 2 و 3، العدد 8 يقبل القسمة على2، العدد 9 يقبل القسمة على 3، العدد 15 يقبل القسمة على 5و 3، العدد 21 يقبل القسمة على7 و 3، العدد 26 يقبل القسمة على 2، العدد 1000 يقبل القسمة على 5 و 2، وهكذا جميع الأعداد، لن تجد أي عدد مركّب إلّا ويقبل القسمة على أحد هذه الأعداد (2، 3، 5، 7). والطريقة التي أقصدها موجودة بأوّل رد على هذا التعليق 🌸
Start Read N ➡️1st condition: Is N>0 🟢Yes: ➡️2nd cond: Is (N=1) or (N=2) or (N=3) or (N=5) or (N=7)? ⚪Yes: print ("It's prime"), End ⚪No: ➡️3rd cond: Is N mod 2 =0? ⚫Yes:print("it's not prime"), End ⚫No:➡️4th cond: Is N mod 3=0? 🟤Yes: print ("it's not prime"), End 🟤No:➡️5th cond: Is N mod 5 =0? 🟡Yes:print ("it's not prime"), End 🟡No:➡️6th cond: Is N mod 7 =0? 🔵Yes:print ("it's not prime"), End 🔵No: print ("It's prime") End 🟢No: print("Plz Enter a positive num") Read N, ...etc End
السلام عليكم ورحمة الله تعالى وبركاته شوف هذا المثال :العدد 517 517÷2=258.5 517÷3=172,333333 517÷5=103,4 517÷7=73,85 لكن : 517÷11=47 يعني 517 عدد غير اولي رغم انه لا يقبل القسمة على 2 ,3,5,7 طريقتك تكون ناجحة اذا قسمت العدد على :2,3,5,7,11,13,17,19,23,29,31,37,41,............(كل الاعداد الاولية الاقل من 100 )
@@fatimazahraa8600 وعليكم السلام ورحمة الله وبركاته، شكراً جزيلاً على هذا التنبيه، الآن قمت بعمل بحث، واكتشفت أنّه لا بدّ من الالتزام بطريقة الأستاذ محمد، لأنّ طريقتي لم و لن تكون ناجحة أبداً😂🤗، على سبيل المثال: العدد 10403 هو ناتج من ضرب عددين أولّيين وهما (101 & 103)؛ لذلك إذا أريد أن أتّبع طريقتي، يجب علي وضع جميع الأعداد الأوّلية داخل ال code الخاص بي 😂🏃♂️🏃♂️🏃♂️
كانت مسألة فيها مشاكل كتير بالنسبالي counter=N-1 counter= counter+1 ------------------ بعد التحليل وإعادة الفيديو أكتر من مرة فهمت * أنا في هذا البرنامج محتاج أشيك على أكتر من حاجة 1- إن N أكبر من 0 2- إن ال N أقل من 2 وأكبر من 0 = لأن الرقم لو كان = 1 أو 2 فهو مش هيحتاج "تكرار" , وهيطبع "prime" , وينهي البرنامج 3- لو كان الرقم أكبر من ال counter =2/ فمحتاج أعرف هل هو بيقبل القسمة على 2 أم لا = فلو قبل القسمة على 2 يبقى كدا "not prime" ، لأنه بكدا قبل القسمة على رقم ثالث غير ال N و 1 طيب = لو مقبلش القسمة على 2 يبقى محتاج أشيك 4- هل في لسه أرقام ما بين N وما بين ال counter=2 ممكن يقبل القسمة عليها تاني زي لو الN=5 مثلا عشان كدا بقى معانا counter=N-1 ، عشان أشوف الأرقام ما بين ال5 وال2 اللي هما ال4 وال 3 هل ال 2=5-1 طبعا لا . هندخل في اللوب بزيادة ال counter واحد counter= counter+1 .. ليه ؟! عشان أنا بقسم ال N على ال counter اللي هيبدأ يزيد في التكرار بحيث يغطي كل الأرقام مابين 2 وما بين N إلى أن يساوي ال counter= N-1 ومن ثم ينهي البرنامج ................. هذا فهمي للمشكلة وحلها ... ولو فما حد هنيا ينجم يشرحها أبسط من هيك .. يا مرحب
(Start ) (read N) (N=>0) اذا لا (print must be =>0) (End) اذا نعم نكمل (Result=N mod 2) (Result=0) اذا نعم (print not prime) (End) اذا لا (print prime ) (End)
يعطيك الف عافية دكتور شكرا على مجهود ك لموضوع اعتقد على حسب متسوى فهمي هو ابسط من هيك بكتير المشكلة واضحة عطيني رقم اذا اولي بطبعلك اولي اذا لم يكن اولي بطبعلك ليس اولي العدد الاولي يقبل القسمة على واحد ونفسو اوكي طيب اذا قبل القسمة على اي عدد اخر فهو ليس اولي جيب اي عدد ممكن يخطر ببالك اذا كان ليس اولي سيقبل القسمة اما على ٢ او ٣ او ٥ حتماااااااا فلو وضعنا شرط واحد فقط بعد اخد الرقم من السمتخدم وهو اذا كان العدد باقي القسمة على 2 N%2=0 اوووووو كان العدد باقي القسمة على 3 N%3 =0 او كان العدد باقي القسمة على 5 N%5=0 وقمنا باستثناء العدد 2 و3 و5 فاذا تحقق الشرط العدد ليس اولي واذا لم يتحقق الشرط فهو اولي وشكرا
خطأ عندك ال٤٩ ما بتقبل القسمة لا ع٢ولا٣ ولا ٥ لكنها بتقبل عسبعة حتقلي نضيف السبعة للاعداد حقلك عندك ال١٢١ مثلا لا بتقبل القسمة لا ع ٢ ولا ٣ ولا٥ ولا ٧ وقد ما ضفت ارقام بشكل حيطلع عندك ارقام بشكل لانهائي ما بتقبل القسمة عليهم
جزاك الله خير, في شيء ما كنت فاهمه, بس الحمدلله ربي وفقني بالبحث و فهمته. Counter= 2 N mod Counter اتعملت في الحل لأن الاعداد الزوجيه ليست اعداد أوليه فالمهندس حفظه الله عمل هذه العمليه ليخرج الاعداد الزوجيه من الحل لأنها ليست اوليه.
انا كتبتا هيك Start. 1: read Num. 2: if (Num > 1 and (Num mod 2 0 or Num = 2)), then print “Prime Number”,otherwise print “Not prime” End. اخيرا درس سهل بعد ما تبهدلت بآخر كم درس سابق, يمكنني تنفس الصعداء😂😂😂😂
No, 1 is not considered a prime number. By definition, a prime number has exactly two distinct positive divisors: 1 and itself. Since 1 only has one divisor (itself), it does not meet this criterion, so it’s not classified as a prime number.
9/5 = 4.5 round(9/2) = 5 round فائدتها تحول العدد العشري لأقرب عدد صحيح العدد العشري هو عدد به فاصلة : 4.66 , 6.87 العدد الصحيح ليس به فاصلة : 5 , 8 , 2
في طريقة يمكن تكون اسهل اول اشي تحكي انه اذا الرقم 2 او 3 بكون prime اذا لا ... تعمل باقي قسمة مثل Num mod 2 = 0 Num mod 3 = 0 اذا جواب نعم بكون not prime اذا الجواب لا بكون prime
من رأيي المتواضع في حل اسهل، وهو لو الرقم أكبر من 2 وأصغر من 9 يتم قسمته على 2 ولو فيه باقي يكون أولى، أما لو الرقم أكبر من 9 يتم قسمة الرقم علي 2 و3و4و5و6و7و8و9 ولو فيه باقي يبقا رقم اولي ولو مفيش يبقا غير اولي. في المعادلة دي هيكون في خطوات كتير لكن هيكون الحل أسرع بكتيييير.
1-start 2-Read Num 3-M=Num 4-c=Num/M 5-result=0 6-No ....print not....End 7-yes 8-M=0 9-yes...print prime.....End 10-No. 11-M=Num-1 12-return to step 4 جوابت قبل لا اشوف الجواب... هل هذا الجواب صحيح.
😊استاذي الفاضل انا اتوصلت لفكرة كمان ان اي عدد بالعالم بينقسم علي ٢ ا ٣ نقول n/2 لو نجح يبقي عدد بش اولي لو منجحش نقول n/3 لو نجح عدد اولي لو منجحش عدد بش اولي وثتثني ال ١ و ال ٢ طبعا وال ٣ لانهم اوليين واعذرني اذا شرحت هذا واانا ما انتبهت للفيديو
للتوضيح للي ما فهم فكرة الoptimization التحسين ما حيفرق معك اذا جربتو على عدد غير أولي مهما كان كبير لأنو هيك هيك الكاونتر بس يتحقق شرط باقي القسمة بينهي البرنامج... بس الفكرة لما تدخل عدد أولي كبير مثلا 1021، مافي داعي البرنامج يضل يزيد الكاونتر حوالي ألف مرة، بكفي يوصل لنصف العدد الأولي الكبير لإثبات انه أولي وبينهي البرنامج.
اللي ما فهم، ادخل في لوب من ٢ الى نصف الرقم و اقسم الرقم في ٢ ٣ ٤ ٥.. الى نصف الرقم في حال كانة النتيجة وجود باقي للقسمة في اي عملية قسمة قمت بيها في اللوب معناته الرقم ليس prime اما اذا كان هناك باقي للقسمة في كل العمليات يعني انه الرقم prime 👍
السلام عليكم استاذ ، انا محاسب خبير و بحب البرمجة حتى قبل ما ادرس محاسبة بالجامعة وقررت ارجع ادرسها بكالوريوس بالجامعة لفتتني المشكلة الي طرحتها وعندي استفسار ، لو توقنا عند خطوة ، n mod counter = 0 والاجابة no يطبع مباشرة prime لانه اي رقم يقسم على ٢ بدون باقي فهو غير اولي واما اذا قسم على ٢ وتبقى اجزاء فهو اولي ، السؤال ليه لازم اكمل الجزئية الي بعدها
بصير ما في مشكله، البرمجه هي عبارة عن تطبيق لأي قاعده ، فاي قاعدة تعطيك النتيجه فهي صحيحه، تستطيع اختيار القاعدة الأوفر للبرنامج من ناحية خطوات التطبيق، هذه القواعد والخطوات هي خوارزميات ونحن نستعرض الحلول المختلفه
قعدت ساعات عبين ما قدرت أفهم الحل فحبيت أشرحه عشان الي معلق عنده يستفيد :) العدد الأولي هو عدد يقبل القسمة على 1 أو نفسه فقط. يجب أن يكون العدد N أكبر من صفر . إذا كان العدد N هو 1 أو 2 يكون أولي. بشكل عام لمعرفة إذا كان العدد أولي أو لا، نقوم بقسمة العدد على جميع الأعداد [الأقل منه] والأكبر من 1، فإذا قبل القسمة على عدد أقل منه وأكبر من 1 ( يعني كان باقي القسمة صفر) يكون العدد غير أولي. أولا : نختبر إذا كان العدد N أكبر من صفر، (إذا كان أقل من صفر نرفضه، وإذا كان أكبر من صفر ننتقل للاختبار الثاني). ثانيا : نختبر إذا كان العدد N هو 1 أو 2 فيكون أولي. (إذا لم يكن 1 أو 2 ننتقل للخطوة التالية). 👇🏻
ثالثا، مؤكد أن العدد N أكبر من 2. الآن علينا قسمته على جميع الأعداد الأقل منه والأكبر من 1، فنبدأ بقسمته على الكاونتر وقيمته 2، وفي كل مرة لا يكون الباقي من القسمة يساوي صفر نقوم بزيادة قيمة الكاونتر بمقدار واحد ثم نقسم عليه مرة أخرى، [شرط أن تظل قيمة الكاونتر أقل من العدد N بواحد، أي أن أكبر عدد يمكن أن أقسم N عليه هو (N-1) ]. إذا قسمنا العدد N على جميع الأعداد الأقل منه ولم يكن هناك باقي للقسمة في أي منها يكون العدد N أولي.
الحل الثاني عبارة عن تعديل في القيم التي نحتاج أن نقسم العدد N عليها، يعني بدل أن نقسم N على جميع الأعداد الأقل منه والأكبر من 1، نكتفي بقسمته على الأعداد الأقل من نصفه، لأن الأعداد الأكبر من نصفه لا يمكن أن يكون باقي قسمته عليها صفر.
I have an important question, please answer. Every number mod 2 that is not equal to 0 is a prime number. Ok, why do we enter a loop c=n-1 if not c=c+1 then n mod 2=0? I see that we print the prime number and terminate the program as long as it is not equal to 0
نصيحة من تريد تحل اي مسألة وحاولت تحل وماكدرت تكدر تفتح الفيديو تشوف الحل ولكن عند المشاهدة افتح افاقك ولا تتوقع اي خطوة من خطوات الحل لان التوقع يصعب عليك عملية الفهم
✅Don't Forget to LIKE 👍 SUBSCRIBE 🔔 SHARE ↗
لا تنسى الاشتراك في القناة وتفعيل زر الجرس، ولطفا ادعمنا بلايك وشارك هذا الفيديو مع اصدقائك لتعم الفائدة للجميع
فيه حل تاني ابسط بكتير
كل الارقام تقبل القسمة علي نفسها وعلي ١ اي مثل الاولية ولكن ما يميز الاولية انها لا تقبل القسمة ÷٢ ولا تقبل القسمة ÷٣ (لا تعامل معاملة العدد الزوجي ولا الفردي ) بالطبع عدا 2 و 3
Steps
1. Read N
2. Check to be N positiv N>0 ?
3. Check if N = 1 or N= 2 or N= 3 (if yes print >> Prime number , if No then step 4)
4. Checking if N not dividing like the odd and even numbers (so just once ÷2 and ÷3)
- If N mod 2 0 (if YES check if N mod 30 if YES too ) >> print prime number
If NO in a one or both questions>> print not Prime number
بعد اذن حضرتك انا عندي سؤال واحد هو ايه الغرض من Counter=Num-1يعني لو الشرط دا اتحقق هنستفيد ايه لباقي الخطوات
وشكرا لحضرتك
خطأ مثال 25
49
@@zeyadmuhamed2541
A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself.
so 1 is not prime but in this algorithm it is prime
@@zeyadmuhamed2541 هناك بعض الاسثتناءات مثلا 25 فهو لا يقبل القسمة على 3او 2 ومع ذالك هوليس عدد اولي لانه يقبل القسمة على 5
بعد تجربة ...اي حلقة ما بتفهمها عيدها 4 او 5 او اكثر مرات ....بتفهم كل شي فيهاااا ....ربنا يحفظك دكتور
اخي ولا لكن اليس العدد1 غير اولي
حضرتك الان في أي كورس
@@yassinbenyahia6801 الخوارزميات
عدد واحد اولي لأن الشرط هو اي عدد لا يقبل القسمة إلا على نفسه او 1، طيب هو من الاساس 1@@mohamedamineamarni1347
انشهد انك صادق يبي لها مراجعه هذي حلقه لين تتدخل العقل
المسألة هي كانت صعبة الفهم علي بالبداية و لكن بعد تكرار الفيديو ؛ تم الأمر 👍 نصيحة لنفسي و لكل حدا عم يتعلم لا تستسلموا ابداً، و أنا سعيد جدا بتعليقات الناس الجميلة و دعمهم للناس اللي بدأت تيئس ، بارك الله في الجميع و بارك الله فيك يا استاذ و رحم الله والديك ❤
هل يوجد مشكله في السوال لوجود تعليقات بتحكي عدد ١ غير أولي
بالنسبى للناس الي وجدت صعوبة فى السؤال مثلي 😂 اولا لازم تحاول فالسؤال اكتر من مرة قبل متشوف شرحي للسؤال وان شاء الله تفهم❤ سأقوم بشرح الخوارميات التى حل بها الاستاذ محمد ابوهدود سنعتبر ال 1 عدد غير أولى؛ يمكنك اعتباره أولى كما فعل الأستاذ ولكن ما أعرفه انه غير أولى
على العموم هذا ليس المهم دعنا نبدا
هذه هى الخطوات التى سار عليها البرنامج :
1. إذا كان العدد 2، فإنه يُعتبر عددًا أوليًا مباشرة ونطبع "prime" وننهي البرنامج.
2. إذا كان العدد غير 2، ننتقل إلى الخطوة الثانية:
- نبدأ باختبار ما إذا كان العدد N يقسم على counter دون بقية (N mod counter = 0).
- إذا كان الناتج يدل على أن N غير عدد أولي (بمعنى آخر، يمكن تقسيمه على عدد آخر غير 1 ونفسه بدون بقية)، فإننا نطبع "not prime" وننهي البرنامج.
- إذا لم يكن الناتج كذلك، ننتقل إلى الخطوة الثالثة.
3. نبدأ الآن في فحص قيمة counter:
- إذا كانت قيمة counter تساوي N - 1، فإننا نعرف أنه تم فحص جميع الأعداد من 2 إلى N - 1 بالفعل دون أن نجد أي عدد يقسم N بدون بقية.
- في هذه الحالة، نطبع "prime" لأنه لم يتم العثور على أي عامل غير 1 ونفسه.
- إذا كانت قيمة counter أقل من N - 1، فإننا نزيد قيمة counter بمقدار واحد ونكرر العملية.
باختصار، عندما نصل إلى counter = N - 1 ولا نجد أي عدد يقسم N بدون بقية، فإن ذلك يؤكد أن N عدد أولي، لأنه لا يمكن تقسيمه على أي عدد آخر غير 1 ونفسه دون بقية
## وبالنسبة للطريقة المحسنة كل مابها اننا بدلا من ان نصنع loop تمر على كل الارقام التى نقسم عليها لحد N-1 نجعلها تمر على M (نصف العدد بداية من ال 2) فقط لاننا حينما نصل الى الترقام نصف العدد سيكون دائما الناتج كسر وهذا ما يحقق شرط ال prime فلا داعى لاختباره ونختبر التقسيم على النصف الاول فقط
فى النهاية انا أسهبت جدا جدا حتى تكون الامر واضحة وأرجو ذلك فعلا 😂😂
ولا تنسونى من صالح دعائكم فى هذه الأيام المفترجة ❤❤
يا اخ
الطريقه الثانيه حق m عندما يكون
n mod contener=0 اذا كن الشرط لا نعمل شرط ثاني وهو contener=m
اذا كان الشرط لا ف الكونتنر نضيف له واحد فلما نعيد الشرط بيطلع
n mod contener=0
فهنا بيطلع نعم لانه كل مره اضفنا واحد الى الكنتنر فصيصبح الكونتنر يساوي n
رقم واحد اولي
الحمدلله
مسألة نوعا ما صعبة قليلا ولكن بداية الطريق هكذا
بارك الله فيك أستاذ محمد ورحم الله والديك
فائدة رياضية: لا تحتاج لأن تكون قيمة M نصف N بل يكفي أن نتوقف عند الجذر التربيعي لN وبهذا نقلل التكرارات وهذا يكفي
فائدة من مدرس رياضيات
جزاك الله خير دكتور ويرحم والديك
لم افهم مائا تعني
ما فهمت؟
الأستاذ عم بقول بالتكرار إنو M تساوي N/2 صح؟ ويقف التكرار عند هذه القيمة
أنا أقول هناك قاعدة رياضية تقول أنه يمكن تخفيف عدد التكرارات أكثر من ذلك لأنه يكفي أن تقف التكرار عند قيمة الجذر التربيعي للرقم N
يعني الأفضل أن تكون قيمة M تساوي الجذر التربيعي لN وبهذه الطريقة نخفف التكرارات لأقل من نصف قيمة N
الفكرة كلها إنك تعرف هاي القاعدة الرياضية عشان بالمستقبل تقدر تعرف خياراتك والحلول
ارجو أن أكون أوضحت بشكل كافي
@@mahmoudalrefai2879 M= sqrt(N)
أحسنت و هذه الطريقة الأمثل
رحم الله والديك وأسكنهما الفردوس الأعلى من غير حساب ولا سابق عذاب وتغمدهما بالرحمة والمغفرة.
بارك الله جهودك ونفع بك وجزاك خيرا ورحمك و والديك وأحسن اليكم❤
من لم يفهم من المرة الأولى فسيفهم من تكرار مشاهدة الفيديو مرتين أو أكثر ..
لدي طريقة أخرى للحل لكن معرفة عدة طرق أفضل ( زيادة الخير خير ) ..
شكراً لك أستاذ على التوضيح ...
هناك عده طرق لكن تجعل البرنامج ابطأ اي تأخد وقت ادا كان العدد ضخم
ضيفها او سمحت لنستفيد جميعا
@@abbodabbod5977وين واصل صديقي
اي نعم لو تتكرم تكتبها النا
ممكن نخلي M=7
وهو ده اقصى اختصار؟؟
🚫🚫🚫⚠⚠⚠⚠⚠⚠🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫
اولا جزاك الله خير عندي استفسار يا استاذ بالنسبة ل N=1 الفلوشارت تصبح خاطئة لان 1 عدد غير اولي
According to flow chart (counter=2>1=N) so N=1 is prime
لايك يا اخوان كي يراه الاستاذ 👍👍👍👍
لا الفلوشارت صحيح لان العدد واحد هو عدد اولي يقبل القسمة على نفسه فقط
وعندما نصل الى سؤال هل n
your are right number 1 is not a prime number but you can edit it easily
true 1 is not prime
في تعريف الأعداد الأولية في أي كتاب رياضة بأنها الأعداد الصحيحة الموجبة الأكبر من العدد واحد، والتي تقبل القسمة على عددين فقط هما العدد نفسه والواحد دون باقٍ
@@theghost12237العدد واحد ليس أولي أبدا
رحم الله والدينا ووالديكم وغفر لهم أجمعين .. آمين .. شكراً على هذا الشرح الوافي .. الله يبيض وجهك ويحقق لك كل ماتتمناه .. شكراَ إلى عنان السماء
الله يعطيك العافيه استاذنا الكريم الله يرحم والديك ويجعل مثواهم الجنه يارب 🌹🥰
معا نحو القمة🔥✌️
Problem 38 done 2022/9/24
فين وصلت ي غالي؟
اي خوارزمية ما تفهمها حاول تكتبها على شكل خطوات صيغهم للبرنامج مثلًا
خطوة 1 ابدأ
خطوة 2 اقرأ الرقم هل هو اصغر او = 0 اذا نعم،هنا نكتب اول احتمال وهو ان الرقم prime مباشرتًا .
اذا لا،لا يساوي 0 هنا نكتبله متغير ونعرف المتغير counter = 2
بعدين اكتب ثاني احتمال هل الرقم الي ادخله المستخدم = قيمة المتغير ؟ لا هنا نكتله ثالث احتمال
وهكذا تكتبهم على ورقة وتكتب كل الاحتمالات بهاذي الصيغة وبعدين ترجع تقرأهم وتفهم .
تصحيح اذا كان الرقم اصغر او يساوي 0 . لا يكون اولي prime . بل يجب اذخال رقم أكبر من 0
مرحبا ممكن تفهمني متى بحط متغير مش عارف بكل مشكلة متى لازم نحط متغير
الله يعيك العافية أستاذ محمد ويرحم والديك ويجعلها في ميزان حسناتك يا رب .
جزاك الله خيرا على الشرح الدقيق.
رحم الله والديك وأسكنهما الفردوس الأعلى من غير حساب ولا سابق عذاب وتغمدهما بالرحمة والمغفرة.
تعديل بسيط عند الدقيقة 3:55 الواحد ليس عدد اولي .... وتعديل اخر يمكن استخدام الجذر التربيعي للعدد المدخل وبهيك بتكون عملت اوبتمايز بنسبة 90% لنو فرضا دخلت عدد 10000 او اكبر ....
def is_prime(num):
if num
اخي ليش هالتعقيد ما فهمت شي منك
@@yazaneskef7908
اعتقد هو كاتب بلغة برمجة مش مثل المهندس
صراحة مسألة صعبة
yeah and he didin't explane that very well
هذا الفيديو رقم 38 طبيعي يكون فيه نوع من الصعوبة، لوو تتكرم أحذف الكومنت لانوو ناس كثيرة مايفهموا كلمة صعب بالمعنى الحقيقي فأول مايشوف كلمة صعب يستسلم.
بتحتاج تفهم يعني اي عدد اولي قبل ما تبدأ"خدلك لفه في اليوتيوب عن الاعداد الاوليه" وعيد الفيديو اكتر من مره باذن الله تكون سهله
@@abdelkarimbaya3255 والله فعلا عندك حق بس لما تتقدم بالكورسات وترجع بتحس انها اسهل من الماء انا من الكورس الخامس ورجعت الان وجالس اضحك على نفسي في الماضي لاني كنت اشوف هذي صعبة
@@ZIKOZEEKO I'm in course 19 now hhhhhh
ربنا يبارك فيك يا بشمهندس و يرحم والديك ويرزقك من فضله
أصعب مسألة لحد الآن 😥
اي مستوى انت الان ؟؟
@@mohammadidreekh2366 انهيت الدروس الموجودة على اليوتيوب فقط
والآن ادرس الhtml والcss مع الاستاذ اسامة الزيرو
عيد الشرح مره واتنين وتلاته لحد ما تفهم طبيعي جدا نلاقو صعوبه في الاول
@@mohammadidreekh2366لوين وصلت يصديقي
بتحتاج تفهم يعني اي عدد اولي قبل ما تبدأ"خدلك لفه في اليوتيوب عن الاعداد الاوليه" وعيد الفيديو اكتر من مره باذن الله تكون سهله
جزاك الله خير
بعد محاولات لفهم العدد الاولي وطريقة حسبتها اتقنت حتى اعداد كبيرة ولله الحمد
وكله بفضل الله وثم تبسيطك وشرحك الوافي
اعدت الفيديو بحدو 3 مرات وثبتت
# صعب بالنسبة لمن لم يحاول الفهم
انا وصلت لدرجة دخلت على كانفا وقمت برسم الفلوشارت على كانفا وبديت ادخل اعداد واحد واحد واجرب حتى فهمتها بالكامل
@@theghost12237 بالتوفيق لك 🫡🤍
@@theghost12237 انصحك تستخدم قلم ودفتر
ممكن تشرحيلي ياها
الله يعيك العافية أستاذ محمد ويرحم والديك ويجعلها في ميزان حسناتك يا رب
الحمد لله أستطعت فهم المشكلة وحلها بعد مشاهدة شرح درس الأعداد الأولية
thanks for evreything you have done for us im still in lesson 9 but i will watching all the next videos < from morocco> thanks agian 3> i have 20 years old end you are the one i start learned end i will get this prgraming language incha lah 3>
done teacher ☑
انتا وصلت لكورس كام
جزاك الله خيرا استاذ
الشكر لك لمجهدك ووقتك وامانتك واخلاصك تقبل الله منك هذا العمل ورحم والديك.
بارك الله فيك استاذنا على الشرح حفظك الله
Thanks for your efforts. Algorithm 2 will not work for big numbers because it is O(n/2) which is approximately O(n) and you cant make more than 1e7 operations. However, their is a proof in discrete mathematics that states that you can check all the divisors till sqrt(n) which is more optimized.
Yes for sure, at this stage and level we are practicing gradually, later on we will focus on code optimization
بس ليش معلق باللغة الإنجليزية؟
جزاك الله خير الجزاء ورحم الله والدينا ووالديكم.
احبتي في حال عدم الفهم من اول مرة كرر متابعة الدرس واكتب الحل الحصيلة والتخدي يستحق الصبر 🔥
جزاكم الله خيرا، شخصيا مافهمت طريقتكم بس أعطاني ChatGPT طريقة اخرى، فما رأيكم؟ هذه الطريقة مبنية على قاعدتين رياضيتين لم تقولوهما في مقطعكم وهو أن العددين 1 و 0 غير أوليين وأنه يمكن الوقوف عند الجذر التربيعي للعدد n عوض النصف.
### Textual Flowchart for Checking a Prime Number:
1. **Start**
2. Read n
3. **Check**:
- If n
هذه يا إخواني ليست لغة برمجة وانما هو شرح كتابي بالانجليزية لل
Flow chart
شكرا لك بشمهندس محمد ربنا يبارك يارب على المجهود العظيم ده ❤❤❤
رحم الله والديك ووالدي الجميع
تسلم على هذا الشرح والتبسيط الرائع ....
جزاك الله خيرا ورحم الله والديك ...
الله يعطيك العافية دكتور ويجزيك خيرالجزاء
ربي يجازيك عنا كل خير
بشمهندس بارك الله فيك وجعل هذا العمل الرائع في ميزان حسناتك وحسنات والديك ان شاء الله ❤❤❤❤
والله انا اول ما بدأت احل المشكلة لاقيتها صعبة جدا حتى بعد ما شوفت الفيديو كامل كانت صعبة بالنسبالي لاني كنت بتفرج على الفيديو كمجرد مشاهدة لكن أول ما بدأت افكر مع حضرتك بالورقة والقلم والفيديو شغال وافهم كل خطوة ايه الغرض منها حتى لو الخطوة الواحدة هتاخد مني وقت كبير في فهمها وهكذا لحد ما الحمد لله فهمتها 100% بفضل الله اولا طبعا وبفضل شرحك وتسلسل خطواتك الأكثر من رائع ..شكرا لك من كل قلبي يا استاذنا الغاااااالي❤💛
جربت طريقتك و فمهت فعلا شكرا جداا ليك و ألقاك في اللقاء القادم والسلام عليكم
enta fe course ah delwaty
@@EslamMohsen1 I'm in c++ course right now thanks for asking
@@ab55hh ربنا يوفقك يا رب
@@EslamMohsen1 ❤😻
❤️❤️🇯🇴🇸🇾
الله يجزيك الخير حب و يرحم والدينا و والديك و جميع المسلمين و المسلمات
صراحة مسألة صعبة لكن مع تكرار تقدر تكتبها وحدك دون نظر شكرا لك استاذ على شرح اعيد كتابة كل خوارزمية اكثر من مرة دون ان ارى حل فقط اشاهد حل مرة واحدة
فيه حل تاني ابسط بكتير
كل الارقام تقبل القسمة علي نفسها وعلي ١ اي مثل الاولية ولكن ما يميز الاولية انها لا تقبل القسمة ÷٢ ولا تقبل القسمة ÷٣ (لا تعامل معاملة العدد الزوجي ولا الفردي ) بالطبع عدا 2 و 3
Steps
1. Read N
2. Check to be N positiv N>0 ?
3. Check if N = 1 or N= 2 or N= 3 (if yes print >> Prime number , if No then step 4)
4. Checking if N not dividing like the odd and even numbers (so just once ÷2 and ÷3)
- If N mod 2 0 (if YES check if N mod 30 if YES too ) >> print prime number
If NO in a one or both questions>> print not Prime number
ده الي جه في بالي فلا
العدد ٢٥ لا يقبل القسمة على ٢ ولا يقبل على ٣ ولكن غير اولى لانه يقبل على ال٥
@@noorabobakr اكتشفت بعدين ان حلي خطأ اعتمد طريقة حل الاستاذ افضل
الله يجزاك خير ووالديك وأهلك وأسأل الله لكم العفو والعافيه في الدنيا والآخرة
جزاك الله خيراً ❤❤❤
اللي يواجه صعوبة في فهم الفيديو تعلم الاعداد الاولية بعدها عيد الفيديو عدة مرات بتفهم
بارك الله فيك .. ورحم والديك الكرام
جـــــــــــــزاك الله خيرا يا د كتور
جزاك الله خيرا ❤
num = int(input("enter a number: "))
count = 2
while count < num:
if num % count == 0:
print(f"{num} is not prime number")
break
count += 1
else:
print(f"{num} is prime number")
نفس الفكرة
بارك الله فيك وجزاك عنا كل خي
يا دكتور فيه مشكله انه رقم واحد ليس اولي صح !!
الأعداد الأولية الأولى هي: 2، 3، 5، 7، 11، 13، 17، 19، 23، 29، إلخ.
للأسف لم تُوافق في شرح هذا الدرس استاذنا الفاضل ، كان يمكنك ان تبسطه اكثر ، شكرا علي جهودك معنا
حل الاستاذ معناه نضع counter 2 ولو العدد اصغر او يساوي 2يكون اولى
لو اكبر من 2؟
نزيد counter واحد كل مرة ونشوف ناتج القسمة الى ان يصل counter للعدد N_1او لنصف العدد Nفي الطريقة الثانية
اذا كانت نتيجة القسمة الباقي صفر اذا عدد غير اولى ولو كان الباقي دائما لايساوي صفر اذن عدد اولى
مرحبا سؤال
ممكن اعرف الcounter أو المتغير العشوائي بشكل عام متى بحطه رجعت لحصص التاسيس للمتغيرات فهمتها بس لم استطع فهم متى يتم طرح متغير في تلك المسائل ؟
استاذي في البداية شكرا جزيلا علي مجهودك الكبير
ثانيا : انا لاحظت ان اي عدد لو قبل القسمة علي اي رقم من الارقام التالية(2 الي 10 ) ولم يخرج باقي فهو عدد غير اولي فاري انه ليس هناك داعي ل N/2
فقط اختبر الرقم علي الاعداد من 2 ل 10
وهذا هو الكود: ملاحظة اعتبرت انه لن يدخل رقم سالب او العدد 1 او 2
#include
using namespace std;
int main() {
int number =0;
cout number;
int counter = 2;
int M = 10;
bool check = true;
if(number < 9)
{
M = number;
}
for(int i = counter; i < M; i++)
{
if(number % i == 0)
{
cout
كمان مش لازم انك تقسمه على كل هاي الارقام الافضل تشوف ازا كان بيقبل القسمة على 2او3او5
مع استثناء اذا كان الرقم المدخل 2
@@Ahmed7_gamaa مابصير عندك 49 لا يقبل على هذه الأعداد ولكن يقبل القسمة على 7فهو غير أولي وكذلك الأمر بالنسبة للعدد121 ليس أولي
121 أولي
استاذي الحبيب كان يكفي ايصال العداد حتى الجذر التربيعي للعدد
يعني الرقم 100 يكفي معه الوصول للرقم 10
مع كامل الشكر والاحترام والامتنان
كيف يعني ممكن تحط الفلوشارت
مثلا أدخلنا العدد 113? كيف يكون حلك ?
أنت أجبت فقط على الاحتمال 100 تنفع معه، لكن هذا برنامج متكامل يجب الوضع في الحسبان جميع الأعداد
@@zakariaad9210لا كلامك غلط استخدام الجذر هو الحل الأمثل في هذه الخوارزمية
وبالنسبة للرقم 113 نعمل round للجذر مثل ما عمل المهندس ابو هدهود
شكراً لك😊ربنا يوفقك ويحفظك ويرحم والديك❤آمين👍
ربنا يبارك لك و يحفظك🤍🤍
غفر الله لك ولوالديك والمؤمنين والمؤمنات
أستاذ في طريقة أبسط بكثير، أوّل شيء بتأكد أنّ العدد أكبر من صفر ولا يساوي (1, 2, 3, 5, أو 7) فإذا كان يساوي أيّ من هذه الأعداد، هذا يعني بأنّه عدد أوّلي. أمّا إذا كان لا يساوي هذه الأعداد، بجرّب قسمة العدد على الأعداد (2, 3, 5, و 7)، فإذا كان باقي القسمة يساوي صفر عند قسمة العدد على أيٍّ من الأعداد التي ذكرتها فهذا يعني بأنّ العدد مركّب وليس أوّلي، أمّا إذا كان باقي القسمة على كل الأعداد التي ذكرتها لا يساوي صفر، فهذا يعني بأنّه عدد أوّلي. بحيث إذا كان العدد مركب يجب أن يقسم على أحد هذه الأعداد (2, 3, 5, 7), على سبيل المثال العدد 4 يقبل القسمة على2، العدد 6 يقبل القسمة على 2 و 3، العدد 8 يقبل القسمة على2، العدد 9 يقبل القسمة على 3، العدد 15 يقبل القسمة على 5و 3، العدد 21 يقبل القسمة على7 و 3، العدد 26 يقبل القسمة على 2، العدد 1000 يقبل القسمة على 5 و 2، وهكذا جميع الأعداد، لن تجد أي عدد مركّب إلّا ويقبل القسمة على أحد هذه الأعداد (2، 3، 5، 7). والطريقة التي أقصدها موجودة بأوّل رد على هذا التعليق 🌸
Start
Read N
➡️1st condition: Is N>0
🟢Yes: ➡️2nd cond: Is (N=1) or (N=2) or (N=3) or (N=5) or (N=7)?
⚪Yes: print ("It's prime"), End
⚪No: ➡️3rd cond: Is N mod 2 =0?
⚫Yes:print("it's not prime"), End
⚫No:➡️4th cond: Is N mod 3=0?
🟤Yes: print ("it's not prime"), End
🟤No:➡️5th cond: Is N mod 5 =0?
🟡Yes:print ("it's not prime"), End
🟡No:➡️6th cond: Is N mod 7 =0?
🔵Yes:print ("it's not prime"), End
🔵No: print ("It's prime")
End
🟢No: print("Plz Enter a positive num")
Read N, ...etc
End
السلام عليكم ورحمة الله تعالى وبركاته
شوف هذا المثال :العدد 517
517÷2=258.5
517÷3=172,333333
517÷5=103,4
517÷7=73,85
لكن :
517÷11=47
يعني 517 عدد غير اولي رغم انه لا يقبل القسمة على 2 ,3,5,7
طريقتك تكون ناجحة اذا قسمت العدد على :2,3,5,7,11,13,17,19,23,29,31,37,41,............(كل الاعداد الاولية الاقل من 100 )
@@fatimazahraa8600
وعليكم السلام ورحمة الله وبركاته، شكراً جزيلاً على هذا التنبيه، الآن قمت بعمل بحث، واكتشفت أنّه لا بدّ من الالتزام بطريقة الأستاذ محمد، لأنّ طريقتي لم و لن تكون ناجحة أبداً😂🤗، على سبيل المثال:
العدد 10403 هو ناتج من ضرب عددين أولّيين وهما (101 & 103)؛ لذلك إذا أريد أن أتّبع طريقتي، يجب علي وضع جميع الأعداد الأوّلية داخل ال code الخاص بي 😂🏃♂️🏃♂️🏃♂️
@@nourdarwish4277 لا شكر على واجب
@@fatimazahraa8600
كم رقم المشكلة التي وصلتي إليها مع الأستاذ؟ أنا متبقٍّ لي 9 فيديوهات تقريباً وأنهي هذه السلسلة 😁
جزاك الله خيرا
كانت مسألة فيها مشاكل كتير بالنسبالي
counter=N-1
counter= counter+1
------------------
بعد التحليل وإعادة الفيديو أكتر من مرة فهمت
* أنا في هذا البرنامج محتاج أشيك على أكتر من حاجة
1- إن N أكبر من 0
2- إن ال N أقل من 2 وأكبر من 0
= لأن الرقم لو كان = 1 أو 2 فهو مش هيحتاج "تكرار" , وهيطبع "prime" , وينهي البرنامج
3- لو كان الرقم أكبر من ال counter =2/ فمحتاج أعرف هل هو بيقبل القسمة على 2 أم لا
= فلو قبل القسمة على 2 يبقى كدا "not prime" ، لأنه بكدا قبل القسمة على رقم ثالث غير ال N و 1
طيب = لو مقبلش القسمة على 2 يبقى محتاج أشيك
4- هل في لسه أرقام ما بين N وما بين ال counter=2 ممكن يقبل القسمة عليها تاني زي لو الN=5 مثلا
عشان كدا بقى معانا counter=N-1 ، عشان أشوف الأرقام ما بين ال5 وال2 اللي هما ال4 وال 3
هل ال 2=5-1 طبعا لا . هندخل في اللوب بزيادة ال counter واحد
counter= counter+1 ..
ليه ؟! عشان أنا بقسم ال N على
ال counter
اللي هيبدأ يزيد في التكرار بحيث يغطي كل الأرقام مابين 2 وما بين N
إلى أن يساوي ال counter= N-1
ومن ثم ينهي البرنامج
.................
هذا فهمي للمشكلة وحلها ... ولو فما حد هنيا ينجم يشرحها أبسط من هيك .. يا مرحب
(Start )
(read N)
(N=>0)
اذا لا (print must be =>0)
(End)
اذا نعم نكمل
(Result=N mod 2)
(Result=0)
اذا نعم (print not prime)
(End)
اذا لا (print prime )
(End)
يعطيك الف عافية دكتور شكرا على مجهود ك
لموضوع اعتقد على حسب متسوى فهمي هو ابسط من هيك بكتير
المشكلة واضحة عطيني رقم
اذا اولي بطبعلك اولي
اذا لم يكن اولي بطبعلك ليس اولي
العدد الاولي يقبل القسمة على واحد ونفسو
اوكي
طيب اذا قبل القسمة على اي عدد اخر فهو ليس اولي
جيب اي عدد ممكن يخطر ببالك اذا كان ليس اولي
سيقبل القسمة اما على ٢ او ٣ او ٥ حتماااااااا
فلو وضعنا شرط واحد فقط بعد اخد الرقم من السمتخدم وهو
اذا
كان العدد باقي القسمة على 2
N%2=0
اوووووو
كان العدد باقي القسمة على 3
N%3 =0
او كان العدد باقي القسمة على 5
N%5=0
وقمنا باستثناء العدد 2 و3 و5
فاذا تحقق الشرط العدد ليس اولي
واذا لم يتحقق الشرط فهو اولي
وشكرا
خطأ عندك ال٤٩ ما بتقبل القسمة لا ع٢ولا٣ ولا ٥ لكنها بتقبل عسبعة حتقلي نضيف السبعة للاعداد حقلك عندك ال١٢١ مثلا لا بتقبل القسمة لا ع ٢ ولا ٣ ولا٥ ولا ٧ وقد ما ضفت ارقام بشكل حيطلع عندك ارقام بشكل لانهائي ما بتقبل القسمة عليهم
تم شكرا لك استاذي الكريم❤
رجم الله والديك وصلى على نبينا
جزاكم الله خيرا ❤️
جزاك الله خير, في شيء ما كنت فاهمه, بس الحمدلله ربي وفقني بالبحث و فهمته.
Counter= 2
N mod Counter
اتعملت في الحل لأن الاعداد الزوجيه ليست اعداد أوليه فالمهندس حفظه الله عمل هذه العمليه ليخرج الاعداد الزوجيه من الحل لأنها ليست اوليه.
شكراا على مجهوداتك، العدد 1 ليس عدد أولي ❤
هل يوجد مشكله في السوال لوجود تعليقات بتحكي عدد ١ أولي ؟
انا كتبتا هيك
Start.
1: read Num.
2: if (Num > 1 and (Num mod 2 0 or Num = 2)), then print “Prime Number”,otherwise print “Not prime”
End.
اخيرا درس سهل بعد ما تبهدلت بآخر كم درس سابق, يمكنني تنفس الصعداء😂😂😂😂
رحم الله والدينا ووالديكم
و حم الله موتى زلزال المغرب
وغفر لهم أجمعين .. آمين
يرحم والديك استاذ
No, 1 is not considered a prime number. By definition, a prime number has exactly two distinct positive divisors: 1 and itself. Since 1 only has one divisor (itself), it does not meet this criterion, so it’s not classified as a prime number.
First condition: I think check if N>1 (Print "Number must be >1")
9/5 = 4.5
round(9/2) = 5
round فائدتها تحول العدد العشري لأقرب عدد صحيح
العدد العشري هو عدد به فاصلة : 4.66 , 6.87
العدد الصحيح ليس به فاصلة : 5 , 8 , 2
@@YNS7T
عشت يسلموا إيديك
حلتها بطريقة أسهل فى سطرين بس ي بشمهندس ❤🎉
ممكن اعرف حليتها ازاي؟
n=int(input('enter number: '))
while n
رحم الله والدينا ووالديكم
رائع جزاك الله خيراً
🛑 الحل ببايثون للحل الأول :
n = int(input("N:"))
c = 2
if n
ممتاز يامهندس
انتا وصلت للكورس كام
في طريقة يمكن تكون اسهل
اول اشي تحكي انه اذا الرقم 2 او 3 بكون prime
اذا لا ... تعمل باقي قسمة مثل
Num mod 2 = 0
Num mod 3 = 0
اذا جواب نعم بكون not prime
اذا الجواب لا بكون prime
يعطيك العافية
يادكتور
لو الرقم كان 21
عند ال Counter لما تبقي 20
في المعادلة
Counter=n-1
كدا هيطلع print prime
وال 21 عدد غير اولي
ممكن توضيح
الله يجزيك الخير ويرحم والدينا ووالديك.
شكرا لك 🌹
جزاك الله خير
الله يعطيك ألف عافية، ويرحم والديك وجميع المسلمين🤍
The 36th video of this series is done ✅
الواحد ليس عدد أولي لأنه يقبل القسمة على نفسه فقط أما العدد الأولي يجب ان يقبل القسمة على عددين لا أكثر ولا أقل. تحياتي لك
اختلفت الاراء في هذا الموضوع، لكنه يحقق الشرطين معا ، فاي راي تاخذه لا مشكله فيه
هو فالحقيقة يقبل القسمة على وحد ويقبل القسمة على نفسه باعتبار القسمة الاولي ان الواحد ليس نفس الوحد والقسمة الثانية هي القسمة على نفسه
سلام عليك.
شكرا لك، ورحم الله والديك.
العدد 1 ليس بعدد أولي. يجب تعديل الخوارزمية.
من رأيي المتواضع في حل اسهل، وهو لو الرقم أكبر من 2 وأصغر من 9 يتم قسمته على 2 ولو فيه باقي يكون أولى، أما لو الرقم أكبر من 9 يتم قسمة الرقم علي 2 و3و4و5و6و7و8و9 ولو فيه باقي يبقا رقم اولي ولو مفيش يبقا غير اولي.
في المعادلة دي هيكون في خطوات كتير لكن هيكون الحل أسرع بكتيييير.
مش شرط...عندك مثلًا رقم زي 209 ... اكبر من 9 لكن لا يقبل القسمة على 2 او 3 او4 او 5 او 6 او 7 او 8 او 9
مع ان 209 بيقبل القسمة على 11 و 19
19×11=209
🤦😅@@MARYAM-M- صح معاكي حق، نظريتي فشلت
وهكذا:
a = int(input("Enter a Num: "))
while a < 0:
a = int(input("Num must greater than 0: "))
else:
b = 2
if a
مشكور على مجهودك العظيم يا دكتور محمد ولكن عندي استفسار صغير حسب دراستي في الرياضيات ان الرقم 1 غير أولي فما رأيك بهذا الأمر أستاذ محمد
أيضا الرقم 0.
هاتين الحالتين ندرسهما قبل الدخول في هده الخوارزمية بشكل منفصل.
مضبوط الرقم واحد ليس عدد اولي
1-start
2-Read Num
3-M=Num
4-c=Num/M
5-result=0
6-No ....print not....End
7-yes
8-M=0
9-yes...print prime.....End
10-No.
11-M=Num-1
12-return to step 4
جوابت قبل لا اشوف الجواب... هل هذا الجواب صحيح.
😊استاذي الفاضل انا اتوصلت لفكرة كمان ان اي عدد بالعالم بينقسم علي ٢ ا ٣ نقول n/2 لو نجح يبقي عدد بش اولي لو منجحش نقول n/3 لو نجح عدد اولي لو منجحش عدد بش اولي وثتثني ال ١ و ال ٢ طبعا وال ٣ لانهم اوليين واعذرني اذا شرحت هذا واانا ما انتبهت للفيديو
للتوضيح للي ما فهم فكرة الoptimization
التحسين ما حيفرق معك اذا جربتو على عدد غير أولي مهما كان كبير لأنو هيك هيك الكاونتر بس يتحقق شرط باقي القسمة بينهي البرنامج...
بس الفكرة لما تدخل عدد أولي كبير مثلا 1021، مافي داعي البرنامج يضل يزيد الكاونتر حوالي ألف مرة، بكفي يوصل لنصف العدد الأولي الكبير لإثبات انه أولي وبينهي البرنامج.
رقم زي 9
ال round هتساوي 5 كدا
ولما تعد ال counter هتتساوي مع ال m الي هي ب 5 وهيطلعلي أنه
عدد اولي وهي اصلا مش اولي
سؤال بقدر اضيف round بالشكل التالي
m=round sqrt(n)
اللي ما فهم، ادخل في لوب من ٢ الى نصف الرقم و اقسم الرقم في ٢ ٣ ٤ ٥.. الى نصف الرقم في حال كانة النتيجة وجود باقي للقسمة في اي عملية قسمة قمت بيها في اللوب معناته الرقم ليس prime اما اذا كان هناك باقي للقسمة في كل العمليات يعني انه الرقم prime 👍
السلام عليكم استاذ ، انا محاسب خبير و بحب البرمجة حتى قبل ما ادرس محاسبة بالجامعة وقررت ارجع ادرسها بكالوريوس بالجامعة
لفتتني المشكلة الي طرحتها وعندي استفسار ، لو توقنا عند خطوة ، n mod counter = 0 والاجابة no يطبع مباشرة prime
لانه اي رقم يقسم على ٢ بدون باقي فهو غير اولي واما اذا قسم على ٢ وتبقى اجزاء فهو اولي ، السؤال ليه لازم اكمل الجزئية الي بعدها
بصير ما في مشكله، البرمجه هي عبارة عن تطبيق لأي قاعده ، فاي قاعدة تعطيك النتيجه فهي صحيحه، تستطيع اختيار القاعدة الأوفر للبرنامج من ناحية خطوات التطبيق، هذه القواعد والخطوات هي خوارزميات ونحن نستعرض الحلول المختلفه
لا اتوقع ما رح يزبط لانه فرضا انت لو دخلت 9 على كلامك المفروض يطلع أولي وهو بالفعل غير اولي لانه لو قسمت على 3 ما رح يطلع في باقي....!!
قعدت ساعات عبين ما قدرت أفهم الحل فحبيت أشرحه عشان الي معلق عنده يستفيد :)
العدد الأولي هو عدد يقبل القسمة على 1 أو نفسه فقط.
يجب أن يكون العدد N أكبر من صفر .
إذا كان العدد N هو 1 أو 2 يكون أولي.
بشكل عام لمعرفة إذا كان العدد أولي أو لا، نقوم بقسمة العدد على جميع الأعداد [الأقل منه] والأكبر من 1، فإذا قبل القسمة على عدد أقل منه وأكبر من 1 ( يعني كان باقي القسمة صفر) يكون العدد غير أولي.
أولا : نختبر إذا كان العدد N أكبر من صفر، (إذا كان أقل من صفر نرفضه، وإذا كان أكبر من صفر ننتقل للاختبار الثاني).
ثانيا : نختبر إذا كان العدد N هو 1 أو 2 فيكون أولي.
(إذا لم يكن 1 أو 2 ننتقل للخطوة التالية).
👇🏻
ثالثا، مؤكد أن العدد N أكبر من 2. الآن علينا قسمته على جميع الأعداد الأقل منه والأكبر من 1، فنبدأ بقسمته على الكاونتر وقيمته 2، وفي كل مرة لا يكون الباقي من القسمة يساوي صفر نقوم بزيادة قيمة الكاونتر بمقدار واحد ثم نقسم عليه مرة أخرى، [شرط أن تظل قيمة الكاونتر أقل من العدد N بواحد، أي أن أكبر عدد يمكن أن أقسم N عليه هو (N-1) ].
إذا قسمنا العدد N على جميع الأعداد الأقل منه ولم يكن هناك باقي للقسمة في أي منها يكون العدد N أولي.
الحل الثاني عبارة عن تعديل في القيم التي نحتاج أن نقسم العدد N عليها، يعني بدل أن نقسم N على جميع الأعداد الأقل منه والأكبر من 1، نكتفي بقسمته على الأعداد الأقل من نصفه، لأن الأعداد الأكبر من نصفه لا يمكن أن يكون باقي قسمته عليها صفر.
طيب يادكتور ، اذا سويت read N , then check if N>0 if yes (result=N=N and N*1=0=true? يستوي جي او لا😭😭😭الحل من راسي
I have an important question, please answer. Every number mod 2 that is not equal to 0 is a prime number. Ok, why do we enter a loop c=n-1 if not c=c+1 then n mod 2=0? I see that we print the prime number and terminate the program as long as it is not equal to 0
yes i think he is wrong
حللته هكذا:
a = int(input("Num: "))
b = 2
c = []
while b
نصيحة من تريد تحل اي مسألة وحاولت تحل وماكدرت تكدر تفتح الفيديو تشوف الحل ولكن عند المشاهدة افتح افاقك ولا تتوقع اي خطوة من خطوات الحل لان التوقع يصعب عليك عملية الفهم
تمام كلامك
الله يعطيك ألف عافية، ويرحم والديك وجميع المسلمين
Input: n
If n < 2
Output: not prime
Else If n == 2
Output: prime
Else
For i from 2 to √n
If n % i == 0
Output: not prime
Exit Loop
Output: prime