Python 实现亲密数对求和算法
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] 内的所有亲密数对,并计算它们的数字之和。最后,读取用户输入的范围 L 和 R,并调用 findAmicableNumbersSum 函数来计算结果。
该代码可以用来计算任何范围内的亲密数对的数字之和。
原文地址: https://www.cveoy.top/t/topic/nZf 著作权归作者所有。请勿转载和采集!