ثبت‌نام دوره🔸متخصص اتوماسیون با N8N🔸سون‌لرن شروع شد 🔥🤖 مشاهده دوره ←
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Muevig
حلقه while
جامعه پایتون (وب) ایجاد شده در ۱۷ آذر ۱۴۰۴

num = 2

while num <= 100:

    is_prime = True

    divisor = 2

    while divisor <= num ** 0.5:

        if num % divisor == 0:

            is_prime = False

            break

        divisor += 1

    if is_prime:

        print(num)

    num += 1

جواب سوال نوشتن اعداد اول از صفر تا صد
بنده متوجه نمیشم این کد

سلام. وقتتون بخیر
کد قراره اعداد اول 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 تا چک کنیم اول هست یا خیر...

سحر پاشائی ۲۲ آذر ۱۴۰۴، ۱۲:۴۹