def getDivisorsSum(n):
     divisors_sum = 1
     for i in range(2, int(n**0.5) + 1):
         if n % i == 0:
             divisors_sum += i
             if n // i != i:
                 divisors_sum += n // i
     return divisors_sum
 
 def findAmicableNumbersSum(L, R):
     sum = 0
     for num in range(L, R + 1):
         div_sum = getDivisorsSum(num)
         if div_sum > num and getDivisorsSum(div_sum) == num:
             sum += num + div_sum
     return sum
 
 L, R = map(int, input().split())
 result = findAmicableNumbersSum(L, R)
 print(result)

输入: 100 300

输出: 504

该代码首先定义一个函数 getDivisorsSum(n) 来计算一个数 n 的所有真因数之和。然后,定义另一个函数 findAmicableNumbersSum(L, R) 来查找给定范围 [L, R] 内的所有亲密数对,并计算它们的数字之和。最后,读取用户输入的范围 LR,并调用 findAmicableNumbersSum 函数来计算结果。

该代码可以用来计算任何范围内的亲密数对的数字之和。

Python 实现亲密数对求和算法

原文地址: https://www.cveoy.top/t/topic/nZf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录