اشکال جزئی در جواب برنامه اعداد اول
سلام دوستان
وقتتون بخیر
من یه برنامه نوشتم به زبان پایتون که اعداد اول رو مشخص کنه.ولی 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)
نقل قول: اشکال جزئی در جواب برنامه اعداد اول
نوشتن اولین عبارت شرطی داخل حلقه که بزرگتر از 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 نشده باشه