ধরুন আমাদের একটি সংখ্যা 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