ধরুন আমাদের দুটি ইনপুট n এবং k আছে। n কে মৌলিক মানের k সংখ্যার যোগফল হিসাবে উপস্থাপন করা যায় কিনা তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি n =30 k =3 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ 30 কে 2 + 11 + 17 এর মত উপস্থাপন করা যেতে পারে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি n
- যদি k> 2 হয়, তাহলে True রিটার্ন করুন
- যদি k 2 এর সমান হয়, তাহলে
- যদি n জোড় হয়, তাহলে True ফেরত দিন
- যদি (n-2) প্রাইম হয়, তাহলে True রিটার্ন করুন
- মিথ্যে ফেরত দিন
- যদি n প্রাইম হয়, তাহলে True রিটার্ন করুন
- মিথ্যে ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def check_prime(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 check_prime(n-2): return True return False if check_prime(n): return True return False n = 30 k = 3 print(solve(n, k))
ইনপুট
30, 3
আউটপুট
True