প্রাইম নম্বর ক্রিপ্টোগ্রাফির মতো অনেক অ্যাপ্লিকেশনে কেউন্দ্রিক ভূমিকা পালন করে। তাই বিভিন্ন অ্যাপ্লিকেশনে পাইথন প্রোগ্রাম ব্যবহার করে প্রাইম নম্বর চেক করা প্রয়োজন হয়। প্রাইম নম্বর হচ্ছে এমন নম্বর যার ১ এবং নিজের বাদে কোনো ফ্যাক্টর নেই। নিচে প্রোগ্রামগুলো দেওয়া হলো যা দিয়ে একটি দেয়া নম্বর প্রাইম কিনা তা বের করা যায়।
অ্যাপ্রোচ
একটি নম্বর প্রাইম কিনা তা ঠিক করার জন্য আমরা নিচের অ্যাপ্রোচ নেব।
শुरুর দিকে চেক করুন নম্বরটি পজিটিভ কিনা। কারণ শুধু পজিটিভ নম্বরই প্রাইম হতে পারে।
নম্বরটি ২ থেকে এক নম্বর কম পর্যంత সব নম্বরের সাথে ভাগ করুন।
যদি এই রেঞ্জের যেকোনো নম্বরের সাথে ভাগ দিলে ভাগশেষ শূন্য হয়, তবে সেটি প্রাইম নম্বর নয়।
উদাহরণ
x = 23
if x > 1:
for n in range(2, x):
if (x % n) == 0:
print(x, "is not prime")
print(n, "times", x // n, "is", x)
break
else:
print(x, "is a prime number")
else:
print(x, "is not prime number")
আউটপুট
উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাবেন:
23 is a prime number
৬i+1 ফর্মে চেক করা
৬ চেয়ে বড় সব প্রাইম নম্বর 6i+1 ফর্মে রিপ্রেজেন্ট করা যায়। এখানে i ১ থেকে শুরু হয় এবং ইন্টিজার হিসেবে বড় হয়। নিচের উদাহরণে আমরা চেক করব নম্বরটি 6i+1 ফর্মে রিপ্রেজেন্ট করা যায় কিনা ৬ দিয়ে ভাগ করে রিমাইন্ডার ১ চেক করে। সেই অনুযায়ী সিদ্ধান্ত নিব নম্বরটি প্রাইম কিনা। এছাড়া i এর মান দেয়া নম্বরের বর্গমূলের সমান হতে হবে তা চেক করতে হবে।
উদাহরণ
def CheckPrime(n):
# 2 এবং 3-এর কেস চেক
if (n <= 1):
return False
if (n <= 3):
return True
# লুপে মাঝপথের পাঁচ নম্বর স্কিপ করা
if (n % 2 == 0 or n % 3 == 0):
return False
i = 5
while (i * i <= n):
if (n % i == 0 or n % (i + 2) == 0):
return False
i = i + 6
return True
# ইনপুট চেক
if (CheckPrime(31)):
print(" true")
else:
print(" false")
if (CheckPrime(25)):
print(" true")
else:
print(" false")
আউটপুট
উপরোক্ত কোডটি রান করলে নিচের ফলাফল পাবেন:
true false