محاسبه اعداد اول در پایتون
در این مقاله با انواع روش های محاسبه اعداد اول در پایتون آشنا خواهیم شد. ما در اینجا برنامه ای می نویسیم که در آن بررسی می کنیم که آیا عدد داده شده اول است یا خیر.
عدد اول چیست؟
عدد اول به عددی گفته میشود که فقط بر 1 یا خودش بخش پذیر باشد. مثلا، عدد 23 عدد اول است زیرا فقط بر 1 و 23 بخش پذیر است. اما عدد 24 عدد اول نیست زیرا علاوه بر 1 و 24 بر اعداد 1,2,3,4,6,8,12 نیز بخش پذیر است.
دقت کنید که عدد 1 در لیست اعداد اول قرار نگرفته و یک عدد مرکب در نظر گرفته میشود. کوچکترین عدد اول موجود در ریاضیات، عدد 2 است.
اعداد اول از روزهای اولیه تمدن توجه بشر را به خود جلب کرده اند. اعداد اول در حوزه رمزنگاری برای فعال کردن کلیدهای عمومی و خصوصی از اهمیت بالایی برخوردار هستند. اساساً امروزه اینترنت به دلیل رمزنگاری پایدار است و این شاخه به شدت به اعداد اول متکی است.
مقاله پیشنهادی: دریافت اطلاعات سخت افزار با پایتون
الگوریتم محاسبه عدد اول
در این بخش با استفاده از حلقه for پایتون الگوریتمی مینویسیم که اول بودن یک عدد را مشخص میکند:
num = int(input("Enter a number: "))
flag = False
if num > 1:
for i in range(2, num):
if (num % i) == 0:
flag = True
break
if flag:
print(num, "is not a prime number")
else:
print(num, "is a prime number")
در این برنامه بررسی کرده ایم که آیا num عدد اول است یا خیر. اعداد کوچکتر یا مساوی 1 اعداد اول نیستند. از این رو، فقط زمانی ادامه می دهیم که عدد بزرگتر از 1 باشد. در کد بالا، ابتدا یک عدد از کاربر گرفته و در متغیر num ذخیره میکنیم.
بررسی می کنیم که آیا عدد num دقیقاً بر هر عددی از 2 تا num - 1 بخش پذیر است یا خیر. اگر فاکتوری در آن محدوده پیدا کنیم، عدد اول نیست، بنابراین flag را روی True قرار می دهیم و از حلقه خارج می شویم.
ویدیو پیشنهادی: آموزش فراخوانی زنجیره ای متدها در پایتون
الگوریتم محاسبه تمام اعداد اول در یک بازه با پایتون
در این بخش یاد می گیرید که تمام اعداد اول را در یک بازه با استفاده از حلقه for چاپ کرده و آن را نمایش دهید.
lower = 900
upper = 1000
print("Prime numbers between", lower, "and", upper, "are:")
for num in range(lower, upper + 1):
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
در اینجا، بازه را به صورت lower برای بازه پایین و upper برای بازه بالا ذخیره میکنیم و اعداد اول را در آن محدوده پیدا میکنیم.