ধরুন আমাদের একটি সংখ্যা n, এবং আরেকটি সংখ্যা k। n কে k মৌলিক সংখ্যার যোগফল হিসাবে উপস্থাপন করা যায় কিনা তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি n =30 k =3 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ 30 কে 2 + 11 + 17 এর মত উপস্থাপন করা যেতে পারে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি n
- মিথ্যে ফেরত দিন
- সত্য ফেরান
- যদি n জোড় হয়, তাহলে
- সত্য ফেরান
- যদি (n-2) প্রাইম হয়, তাহলে
- সত্য ফেরান
- মিথ্যে ফেরত দিন
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def isPrime(num):
if num > 1:
for i in range(2, num):
if num % i == 0:
return False
return True
return False
def solve(n, k):
if n < k*2:
return False
if k > 2:
return True
if k == 2:
if n%2 == 0:
return True
if isPrime(n-2):
return True
return False
if isPrime(n):
return True
return False
n = 30
k = 3
print(solve(n, k)) ইনপুট
30, 3
আউটপুট
True