Amicable numbers হলো দুটি ভিন্ন নম্বর যারা এভাবে সম্পর্কিত যে প্রতিটির প্রপার ডিভাইজার্সের যোগফল অন্য নম্বরটার সমান। যখন দুটি নম্বর amicable numbers কিনা চেক করতে হয়, একটি মেথড ডিফাইন করা যেতে পারে যা নম্বর ওভার ইটারেট করে এবং মডুলাস অপারেটর ব্যবহার করে। আরেকটি মেথড ডিফাইন করা হয় যা পূর্বে ডিফাইন করা ফাংশন কল করে দুটি নম্বর amicable কিনা তা নির্ধারণ করতে।
নিচে এর демонস্ট্রেশন দেওয়া হলো:
উদাহরণ
import math
def divided_sum_val(my_val):
res = 0
for i in range(2, int(math.sqrt(my_val)) + 1):
if (my_val % i == 0):
if (i == int(my_val / i)):
res = res + i
else:
res = res + (i + int(my_val / i))
return (res + 1)
def check_amicable(x, y):
if (divided_sum_val(x) != y):
return False
return (divided_sum_val(y) == x)
first_num = 220
second_num = 288
print("The numbers are :")
print(first_num)
print(second_num)
if (check_amicable(first_num, second_num)):
print("The given numbers are amicable in nature")
else:
print("The given numbers are not amicable in nature")
আউটপুট
The numbers are : 220 288 The given numbers are not amicable in nature
ব্যাখ্যা
‘divided_sum_val’ নামক একটি মেথড ডিফাইন করা হয়েছে যা প্যারামিটার হিসেবে একটি ইন্টিজার নেয়।
এটি ‘for’ লুপ ব্যবহার করে ভ্যালু ওভার ইটারেট করে এবং নম্বরের বিভাজ্যতা চেক করে।
যদি ইটারেটর ভ্যালু/ইটারেটরের সমান হয়, এটি ইটারেটর দিয়ে ইনক্রিমেন্ট করা হয়।
অন্যথায়, পুরো ভাগফল যোগ করা হয়।
‘check_amicable’ নামক আরেকটি মেথড ডিফাইন করা হয়েছে, যা দুটি নম্বর নেয়।
এটি ‘divided_sum_val’ কল করে এবং কম্পিউটেড ভ্যালু অনুযায়ী ‘True’ বা ‘False’ রিটার্ন করে।
দুটি নম্বর ডিফাইন করা হয়েছে, এবং কনসোলে প্রদর্শিত হয়েছে।
মেথডটি এই দুটি নম্বর পাস করে কল করা হয়েছে।
আউটপুটের ভিত্তিতে প্রাসঙ্গিক মেসেজ কনসোলে প্রদর্শিত হয়েছে।