ধরুন আমাদের একটি সংখ্যা n এবং আরেকটি সংখ্যা আছে, আমাদের পরীক্ষা করতে হবে যে n এর বিজোড় স্থানে (ডান দিক থেকে বাম দিকে) সংখ্যার যোগফল k দ্বারা বিভাজ্য কি না।
সুতরাং, যদি ইনপুটটি n =2416 k =5 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ ডান থেকে বামে বিজোড় স্থাপন করা সংখ্যার যোগফল হল 4 + 6 =10৷ যা 5 দ্বারা বিভাজ্য৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- মোট :=0, pos :=1
- যখন n> 0 , do
- যদি pos বিজোড় হয়, তাহলে
- মোট :=মোট + (n মোড 10)
- n :=(n / 10) এর ভাগফল
- pos :=pos + 1
- যদি pos বিজোড় হয়, তাহলে
- যদি মোট k দ্বারা বিভাজ্য হয়, তাহলে
- সত্য ফেরান
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
def solve(n, k): total = 0 pos = 1 while n > 0: if pos % 2 == 1: total += n % 10 n = n // 10 pos += 1 if total % k == 0: return True return False n = 2416 k = 5 print(solve(n, k))
ইনপুট
2416, 5
আউটপুট
True