ধরুন, একটি প্রাইম সংখ্যা n দেওয়া হয়েছে। আমাদের যাচাই করতে হবে যে n কি দুটি প্রাইম সংখ্যা x এবং y-র যোগফল হিসেবে লেখা যায় (n = x + y)।
যেমন, ইনপুট n = 19 হলে আউটপুট হবে True, কারণ 19 = 17 + 2 (দুটোই প্রাইম)।
সমাধানের ধাপসমূহ
isPrime(number)ফাংশন বানান:number <= 1হলে False।number == 2হলে True।- যদি জোড় হয়, False।
3থেকেsqrt(number)পর্যন্ত ২ দিয়ে স্টেপ বাড়িয়ে চেক করুন।
- মূল ফাংশনে: যদি
isPrime(n)এবংisPrime(n-2)দুটোই True হয়, তবে True ফেরত দিন (কারণ একটু চিন্তা করলে দেখা যাবে, বিজোড় প্রাইম দুটি প্রাইমের যোগফল হলে একট অবশ্যই ২ হবে)। - অন্যথায় False।
উদাহরণ কোড
from math import sqrt
def isPrime(number):
if number <= 1:
return False
if number == 2:
return True
if number % 2 == 0:
return False
for i in range(3, int(sqrt(number)) + 1, 2):
if number % i == 0:
return False
return True
def solve(number):
if isPrime(number) and isPrime(number - 2):
return True
else:
return False
n = 19
print(solve(n))
ইনপুট
19
আউটপুট
True