মান লেন, আমাদের কাছে একটি সংখ্যা n এবং অন্য একটি সংখ্যা k আছে। আমাদের যাচাই করতে হবে n-এর ইভেন প্লেসের ডিজিটগুলোর গুণফল k দিয়ে বিভাজ্য কিনা। প্লেস কাউন্ট ডান থেকে বামে শুরু হয়। ডানতম পজিশন ১।
যেমন, ইনপুট হলে n = 59361, তবে আউটপুট হবে True কারণ (1*3*5) 3 দিয়ে বিভাজ্য।
এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:
- digit_count := দেওয়া সংখ্যা n-এর ডিজিট কাউন্ট।
- prod := 1
- যখন n > 0, তখন লুপ চালান:
- যদি digit_count সম (even) হয়, তবে prod := prod * n-এর শেষ ডিজিট।
- n := n / 10 এর ভাগফল।
- digit_count := digit_count - 1
- যদি prod k দিয়ে বিভাজ্য হয়, তবে True রিটার্ন করুন।
- False রিটার্ন করুন।
উদাহরণ কোড
from math import log10
def solve(n, k):
digit_count = int(log10(n)) + 1
prod = 1
while n > 0:
if digit_count % 2 == 0:
prod *= n % 10
n = n // 10
digit_count -= 1
if prod % k == 0:
return True
return False
n = 59361
k = 3
print(solve(n, k))
ইনপুট
59361, 3
আউটপুট
True