首先,看一个简单的代码,运行计算的时间可能会比较长,但比较容易理解:
n = int(input())
def f(x):
c=0
sum1 = 0
for a in range(1,x+1):
for b in range(1,x+1):
if a*b==x:
if a!=b:
c =(a+b)/2
sum1+=c
if a ==b:
c = a
sum1+=c
else:
sum1+=0
return sum1
a =[]
for i in range(1,n+1):
a.append(f(i))
a = map(int,a)
a = list(a)
s = sum(list(a))
print(s)
明显代码比较长,并且for循环太多,下面展示它的改进:
import math
def factor(num):
sum2 = 0
sum3 = 0
for_times = int(math.sqrt(num))
for i in range(1,for_times + 1):
if num % i == 0:
sum2+=i
t = int(num / i)
if t != i:
sum3+=t
return sum2+sum3
n = int(input())
sum1 = 0
for i in range(1,n+1):
sum1 += factor(i)
print(sum1)
这个代码明显就短小多了,哈哈,这就是数学的重要,还是高中老师说的对,数学不好不建议学习编程。
哈哈,今天的分享就到这了,希望看的这篇文章的人编程能力天天指数爆炸式增长。
早日年薪百万!哈哈😃😃😃😃