0%

python日常:构造程序逻辑练习

引言:今日练习构造程序逻辑

练习

寻找“水仙花数”

1
2
3
4
5
6
for num in range(100,1000):
low = num % 10
mid = num // 10 % 10
high = num // 100
if num == low ** 3 + mid ** 3 + high ** 3 :
print(num)

水仙花数为:153
水仙花数为:370
水仙花数为:371
水仙花数为:407

**※注意※:
1.python运算符的运用,“//”的意义为取整除,及返回商的整数部分(向下取整);“%”的意义为返回除法的余数
2.水仙花数是各位立方和等于这个数本身的数,如: 153 = 1^3 + 5^3 + 3^3

寻找“完美数”

1
2
3
4
5
6
7
8
9
10
11
import math

for num in range(1, 10000):
result = 0
for factor in range(1, int(math.sqrt(num)) + 1):
if num % factor == 0:
result += factor
if factor > 1 and num // factor != factor:
result += num // factor
if result == num:
print(num)

**※注意※:
疑问:为什么factor取值要在``range(1,int(math.sqrt(num))+1)里面取
1.完美数是除自身外其他所有因子的和正好等于这个数本身的数,例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14

-------------本文结束感谢您的阅读-------------
+ +