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