অ্যামিকেবল নম্বর হলো দুটি ভিন্ন সংখ্যা যাদের প্রপার ডিভাইজারদের যোগফল একে অপরের সমান হয়। (একটি সংখ্যার প্রপার ডিভাইজার হলো সেই সংখ্যাকে বাদ দিয়ে বাকি পজিটিভ ফ্যাক্টর। উদাহরণস্বরূপ, ৬-এর প্রপার ডিভাইজার ১, ২, ৩।)
পাইথনে, আপনি প্রতিটির প্রপার ডিভাইজার যোগফল বের করে অন্যটির সাথে তুলনা করে এই সংখ্যাগুলো খুঁজে বের করতে পারেন। উদাহরণস্বরূপ,
def are_amicable(x, y):
if x == y:
return False
# প্রপার ডিভাইজারদের যোগফল বের করুন
sum_x = sum(e for e in range(1, x//2+1) if x % e == 0)
sum_y = sum(e for e in range(1, y//2+1) if y % e == 0)
# শর্ত পূরণ করলে True রিটার্ন
return sum_x == y and sum_y == x
print(are_amicable(15, 20))
print(are_amicable(220, 284))
এটি আউটপুট দেবে
False True