আমল এবং বিমল একটি সংখ্যা n দিয়ে গেম খেলছে। নিয়ম:
- যদি n ২-এর ঘাত হয়, ২ দিয়ে ভাগ করুন।
- অন্যথায় n-র চেয়ে ছোট সবচেয়ে বড় ২-এর ঘাত বিয়োগ করুন।
- যিনি n কে ১ করবেন সে জিতবে। আমল প্রথম খেলে।
উদাহরণ
ইনপুট: n = 19
আউটপুট: Amal
১৯ → ১৬ (আমল) → ৮ (বিমল) → ৪ (আমল) → ২ (বিমল) → ১ (আমল)। আমল জিতল।
সমাধান পদ্ধতি
res := 0while n > 1:b := 1;while b*2 < n: b *= 2(n-র চেয়ে ছোট বড় ২-এর ঘাত)n := n - bres += 1
- যদি
res % 2 == 0: "Amal", অন্যথায় "Bmal"।
পাইথন ইমপ্লিমেন্টেশন
def solve(n):
res = 0
while n > 1:
b = 1
while b * 2 < n:
b *= 2
n -= b
res += 1
return 'Amal' if res % 2 == 0 else 'Bmal'
# টেস্ট
n = 19
print(solve(n)) # আউটপুট: Amal
ইনপুট
19
আউটপুট
Amal