想问一下完整的程序设计,主要是给定a b后如何去写亏数完全数盈数的个数
定义三个变量,判断一下返回值,如果是-1,a+=1,如果是0,b+=1,如果是1,c+=1
也可以用数组
c=[0]*3
c[func()+1]+=1
代码如下,如有帮助 请点击一下采纳谢谢:
w = 0
w_k = 0
w_y = 0
def is_(m, n):
for i in range(m, n, 1):
y = 1
for j in range(2, i):
if i % j == 0:
y += j
else:
y += 0
if i == y:
print(i)
global w
w += 1
if i > y:
global w_k
w_k += 1
if i<y:
global w_y
w_y += 1
is_(10000, 12345)
print(w_k, w, w_y)
优化了 执行速度很快
from functools import reduce
def factors2(n):
res = set(reduce(list.__add__,
([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0)))
res.remove(n)
return res
if __name__ == '__main__':
a = 10000
b = 12345
dic = {-1:0, 0:0, 1:0}
for i in range(a, b):
if sum(factors2(i)) > i:
dic[-1] += 1
elif sum(factors2(i)) <i :
dic[0] += 1
else:
dic[1] += 1
print(dic)