四位玫瑰数
描述
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。
输入输出示例
输出仅表示格式,不表示对错。
输入 | 输出 | |
示例 1 | | |
【练习代码】
for i in range(1000,10000):
s = 0
for j in str(i):
s += int(j)**4
if s==i:
print(s)
也可以取模
for i in range(1000,10000):
a=i//1000
b=i//100%10
c=i%100//10
d=i%10
if a**4+b**4+c**4+d**4==i:
print(i)
【参考代码】
s = ""
for i in range(1000, 10000):
t = str(i)
if pow(eval(t[0]),4) + pow(eval(t[1]),4) + pow(eval(t[2]),4) + pow(eval(t[3]),4) == i :
print(i)
100以内素数之和
描述
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
输入格式
该题目没有输入
输入输出示例
输入 | 输出 | |
示例 1 | 1234(这是示例,不是真实输出) |
【练习代码】
s=0
for i in range(2,100):
for j in range(2,i):
if i%j==0:
break
else:
s+=i
print(s)
for-else的使用
Python 的 For/Else 语句 - 知乎 (zhihu.com)
【参考代码】
#Prime
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)