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

โปรแกรม Python เช็คว่าเลขสองตัวเป็นตัวเลขที่เป็นมิตรหรือไม่


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

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -

ตัวอย่าง

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' ขึ้นอยู่กับค่าที่คำนวณได้

  • ตัวเลขทั้งสองถูกกำหนดไว้แล้วและแสดงบนคอนโซล

  • วิธีการนี้เรียกโดยการส่งต่อตัวเลขสองตัวนี้

  • ตามผลลัพธ์ ข้อความที่เกี่ยวข้องจะแสดงบนคอนโซล