#-*-encoding:utf-8-*-
import time
# 计算1-10**12区间所有数的约数的和
# 计算数据区间中所有数的和
def sum_ab(a, b):
if (b - a) % 2 != 0:
return (b + a) * ((b - a + 1) // 2)
else:
return sum_ab(a, b - 1) + b
# # 计算中间值
# num = 1; data = 10 ** 12
# while True:
# if data // num - data // (num + 1) == 1:
# print(num)
# break
# num += 1
num1 = 550000
sum = 0
for i in range(1, num1):
sum += sum_ab((10 ** 12) // (i + 1) + 1, 10 ** 12 // i) * i
num2 = (10 ** 12) // num1 + 1
for i in range(1, num2):
sum += (10 ** 12 // i) * i
print(sum)
计算1-10^12之间所有数的约数的和的python实现
最新推荐文章于 2024-02-27 12:44:56 发布