Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะตรวจสอบได้อย่างไรว่าตัวเลขสองตัว (m,n) เป็นมิตรหรือไม่ใช้ Python?


จำนวนที่เป็นมิตรคือตัวเลขสองจำนวนที่แตกต่างกันซึ่งสัมพันธ์กันโดยที่ผลรวมของตัวหารที่เหมาะสมของแต่ละตัวมีค่าเท่ากับจำนวนอื่น (ตัวหารที่เหมาะสมของจำนวนหนึ่งเป็นปัจจัยบวกของจำนวนนั้นนอกเหนือจากตัวมันเอง ตัวอย่างเช่น ตัวหารที่เหมาะสมของ 6 คือ 1, 2 และ 3.)

ใน python คุณสามารถหาตัวเลขเหล่านี้ได้โดยนำผลรวมของแต่ละตัวมาเปรียบเทียบกัน ตัวอย่างเช่น

def are_amicable(x, y)
   if x==y:
      return False
   # Find sum of their proper divisors
   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)
   
   #Return true of they satisfy the last condition
   return sum_x==y and sum_y==x
print(are_amicable(15, 20))
print(are_amicable(220, 284))

สิ่งนี้จะให้ผลลัพธ์

False
True