PDA

View Full Version : اشکال جزئی در جواب برنامه اعداد اول



maryam_nzr
شنبه 20 اردیبهشت 1399, 18:33 عصر
سلام دوستان
وقتتون بخیر
من یه برنامه نوشتم به زبان پایتون که اعداد اول رو مشخص کنه.ولی 2 رو جز اعداد اول چاپ نمیکنه.میشه کمک کنین برطرفش کنم؟
در اصل من این برنامه رو برای سوال مشخص کردن اعداد اول زیر 100 نوشتم.چون تازه کارم ساده نوشتم.هنوز تابع و این چیزا رو یاد ندارم.ممنون میشم ساده پاسخ بدین



start = 1
end = 100

for i in range(start, end + 1):
if i > 1:
for n in range(2, i//2 + 2):
if (i % n) == 0:
break
else:
if n == i//2 + 1:
print(i)

sd702004
شنبه 20 اردیبهشت 1399, 22:54 عصر
نوشتن اولین عبارت شرطی داخل حلقه که بزرگتر از 1 بودن i رو چک میکنه ضرورتی نداره و به جاش میشه گفت که start از 2 شروع بشه. برای کنترل اول بودن عدد هم فقط یک شرط لازمه تا کنترل کنه که اگه اون عدد به تمام اعداد کمتر از خودش (بزرگتر از 1) بخش‌پذیر نبود بعنوان اول در نظر گرفته بشه. بنابراین کد رو میشه به این صورت بازنویسی کرد:

start = 2
end = 100

for i in range(start, end+1):
for n in range(2, i):
if (i % n) == 0:
break
else:
print(i)
توضیح: در حلقه for کد قسمت else در صورتی اجرا میشه که حلقه break نشده باشه