一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
程序分析:请参照程序python实例14。我就不在这里过多介绍了。
for j in range(2,1001): k = [] n = -1 s = j for i in range(1,j): if j % i == 0: n += 1 s -= i k.append(i) if s == 0: print (j) for i in range(n): print(str(k[i])) # print(' ') print (k[n])
输出:
如上图结果所示,我们发现 有点乱,那有没有可能输出一行是一个数,一行全是它的因子呢?
当然可以喽,此时就应该介绍一下我们的sys库中的stdout函数,它的意思是输出不换行
代码更改如下:
# #19 from sys import stdout for j in range(2,1001): k = [] n = -1 s = j for i in range(1,j): if j % i == 0: n += 1 s -= i k.append(i) if s == 0: print (j) for i in range(n): stdout.write(str(k[i])) stdout.write(' ') print (k[n])
此时输出为:
这样输出,不但看着舒心,用着也舒心hhhhhhhhhhhhhhh
20.题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反d多高?
程序分析:无,一道基础物理题,就不做过多介绍了,如果你做不出来,那!!!
好了,话不多说,直接上代码吧:
#20 tour = [] height = [] hei = 100.0 # 起始高度 tim = 10 # 次数 for i in range(1, tim + 1): # 从第二次开始,落地时的距离应该是反d高度乘以2(d到最高点再落下) if i == 1: tour.append(hei) else: tour.append(2*hei) hei /= 2 height.append(hei) print('总高度:tour = {}'.format(sum(tour))) print('第10次反d高度:height = {}'.format(height[-1]))
输出:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)