جواب سوال نوشتن اعداد اول از صفر تا صد بنده متوجه نمیشم این کد
سلام. وقتتون بخیر کد قراره اعداد اول 0 تا 100 رو چاپ کنه.
عدد اول عددیه که فقط بر خودش و 1 بخشپذیر باشه. (یعنی بر هر عدد دیگهای تقسیم بشه باقیموندش نباید صفر بشه، مثل عدد 7 که فقط تقسیمش بر خودش و 1 باقی مونده صفر میده)
● حالا ما برای هر عدد، فرض میکنیم اول هست. (بذارید اسم این عدد رو بذاریم num) ● بعد امتحان میکنیم آیا عددی وجود داره که اگر num رو بر اون تقسیم کنیم باقیمونده صفر بده؟ ● اگر حتی یک عدد پیدا بشه که باقیماندهی تقسیم صفر بده عدد حذف میشه و اول نیست، در غیر این صورت اوله. این میشه منطق کلی کد. حالا خط به خط چک کنیم: num = 2 شروع بررسی از عدد ۲ (کوچکترین عدد اول) قرار شد تا 100 بررسی بشه، پس: while num <= 100: تا وقتی num به ۱۰۰ نرسیده، ادامه بده is_prime = True پرایم همون عدد اوله، فرض اولیهمون: «این عدد اول هست» divisor = 2 قرار شد بگردیم ببینیم عددی پیدا میکنیم که num بهش تقسیم شه باقیمونده صفر بده؟ divisor نماینده همون عدده هست. while divisor <= num ** 0.5: این خط یعنی تا وقتی divisor کوچکتر یا مساوی ریشهی دوم عدده، بررسی رو ادامه بده. (ریشهی دوم یک عدد یعنی: چه عددی رو در خودش ضرب کنیم، اون عدد بهدست میاد؟ مثلا ریشه دوم 9 عدد 3 هست، چون 3 رو در خودش ضرب کنیم (3 * 3) میشه 9 -- تو کد num ** 0.5 منظور همون ریشه دوم num هست) این درواقع داره میگه فقط تا جایی بررسی کن که منطقیه چیزی پیدا شه، بعد از اون ادامه دادن وقت تلف کردنه. if num % divisor == 0: اگر عدد بدون باقیمانده تقسیم شد یعنی: یک مقسومعلیه پیدا کردیم. is_prime = False break پس:
عدد اول نیست
دیگه ادامه نده (break) divisor += 1 اما اگه تقسیم نشد، برو سراغ عدد بعدی... اینجا یعنی یه عدد دیگه پیدا کنیم که ببینیم num بهش بخش پذیره یا نه if is_prime: print(num) اگه بعد از همهی این بررسیها هنوز True مونده متغیر is_prime: پس عدد اوله ==> چاپش کن. num += 1 حالا میریم سراغ عدد بعدی در بازه 0 تا 100 تا چک کنیم اول هست یا خیر...