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

ตรวจสอบว่าผลรวมของตัวหารของตัวเลขสองตัวเหมือนกันใน Python . หรือไม่


สมมติว่าเรามีตัวเลขสองตัว p และ q เราต้องตรวจสอบว่าผลรวมของตัวหารทั้งหมดของเลขพ่วงเหล่านี้เท่ากันหรือไม่

ดังนั้น หากอินพุตเป็น p =559, q =703 ผลลัพธ์จะเป็น True ตัวหารของ 559 คือ 1, 13, 43 และ 703 คือ 1, 19, 37 ผลรวมของตัวหารคือ 57

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • กำหนดฟังก์ชัน divSum() นี่จะใช้เวลา n
  • รวม :=1
  • ผม :=2
  • ในขณะที่ i * i <=n ทำ
    • ถ้า n หารด้วย i ลงตัว
      • ผลรวม :=รวม + ผม + พื้นของ (n / i)
    • ผม :=ผม + 1
  • ผลตอบแทนรวม
  • จากวิธีหลักคืนค่าจริงเมื่อ divSum(p) เหมือนกับ divSum(q) มิฉะนั้นจะเป็นเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

โค้ดตัวอย่าง

from math import floor
 
def divSum(n):
   total = 1
   i = 2
   while i * i <= n:
      if n % i == 0:
         total += i + floor(n / i)
      i += 1
 
   return total
   
def solve(p, q):
   return divSum(p) == divSum(q)

p = 559
q = 703
print(solve(p, q))

อินพุต

559, 703

ผลลัพธ์

True