嵩天老师Python语言程序设计第四周测验

四位玫瑰数

for i in range(1000,10000):
    if eval(str(i)[0])**4+eval(str(i)[1])**4+eval(str(i)[2])**4+eval(str(i)[3])**4==i:
        print(i)

100以内所有素数求和
我写的代码是:

a=2
s=0

for i in range(2,101):
    while a

输出结果是错误的,原因是一开始给 a 赋值为 2 ,但是在循环当中改变了 a 的值,导致后面的循环当中 a 的初始值已经不是 2 了。
应该修改为:

s=0

for i in range(2,101):
    a=2
    while a

参考代码是:

def is_prime(n):
    for i in range(2,n):
        if n%i == 0:
            return False
    return True
sum = 0
for i in range(2,100):
    if is_prime(i):
        sum += i
print(sum)

你可能感兴趣的:(笔记)