ধরুন আমাদের একটি সংখ্যা n আছে। আমাদের আরও দুটি সংখ্যা a এবং b আছে। আমাদের পরীক্ষা করতে হবে যে আমরা a এবং b ব্যবহার করে একটি সংখ্যা তৈরি করতে পারি যা n.
ভাগ করেসুতরাং, যদি ইনপুটটি n =115, a =3, b =2 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ 115 23 দ্বারা বিভাজ্য যা 2 এবং 3 দিয়ে তৈরি।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- একটি ফাংশন util() সংজ্ঞায়িত করুন। এটি temp, a, b, n লাগবে
- যদি temp>
n হয়, তাহলে
- মিথ্যে ফেরত দিন
-
যদি n temp দ্বারা বিভাজ্য হয়, তাহলে
- সত্য ফেরান
- যখন util(temp * 10 + a, b, n) বা util(temp * 10 + b, a, b, n) এর মধ্যে অন্তত একটি সত্য হয় অন্যথায় মিথ্যা হয় তখন সত্য ফেরত দিন
- প্রধান পদ্ধতি থেকে সত্য ফিরে আসে যখন util(a, a, b, n) বা util(b, a, b, n) এর মধ্যে অন্তত একটি সত্য হয় অন্যথায় মিথ্যা হয়
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def util(temp, a, b, n): if temp > n: return False if n % temp == 0: return True return util(temp * 10 + a, a, b, n) or util(temp * 10 + b, a, b, n) def solve(n, a, b): return util(a, a, b, n) or util(b, a, b, n) n = 115 a = 3 b = 2 print(solve(n, a, b))
ইনপুট
115, 2, 3
আউটপুট
True