จำนวนที่เป็นมิตรคือตัวเลขสองจำนวนที่แตกต่างกันซึ่งสัมพันธ์กันโดยที่ผลรวมของตัวหารที่เหมาะสมของแต่ละตัวมีค่าเท่ากับจำนวนอื่น เมื่อจำเป็นต้องตรวจสอบว่าตัวเลขสองตัวเป็นตัวเลขที่เป็นมิตรหรือไม่ สามารถกำหนดวิธีการที่จะวนซ้ำตัวเลข และใช้ตัวดำเนินการโมดูลัส มีการกำหนดวิธีอื่นที่เรียกใช้ฟังก์ชันที่กำหนดไว้ก่อนหน้านี้เพื่อตรวจสอบว่าตัวเลขสองตัวเป็นมิตรหรือไม่
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ตัวอย่าง
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' เพื่อวนซ้ำค่าและตรวจสอบการหารของตัวเลข
-
ถ้า iterator เท่ากับค่าที่หารด้วย iterator ค่า iterator จะเพิ่มขึ้น
-
มิฉะนั้นจะเพิ่มจำนวนที่หารทั้งหมด
-
มีการกำหนดวิธีอื่นที่ชื่อว่า 'check_amicable' ซึ่งใช้ตัวเลขสองตัว
-
มันเรียก 'divided_sum_val' และส่งกลับ 'True' หรือ 'False' ขึ้นอยู่กับค่าที่คำนวณได้
-
ตัวเลขทั้งสองถูกกำหนดไว้แล้วและแสดงบนคอนโซล
-
วิธีการนี้เรียกโดยการส่งต่อตัวเลขสองตัวนี้
-
ตามผลลัพธ์ ข้อความที่เกี่ยวข้องจะแสดงบนคอนโซล