打印100以内的完数用py
时间: 2024-09-25 16:19:55 浏览: 36
打印100以内的完美数(Perfect Number)是指一个正整数,它的所有真因数(除了自身以外的因数)之和等于它本身的数。例如,6是一个完美数,因为1 + 2 + 3 = 6。
下面是一个简单的Python程序,用于找出并打印100以内的所有完美数:
```python
def is_perfect_number(n):
if n < 1:
return False
sum_of_divisors = 1
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
sum_of_divisors += i
if i != n // i: # 如果i不是n的平方根,还需要加上另一个因子
sum_of_divisors += n // i
return sum_of_divisors == n
perfect_numbers = [num for num in range(1, 101) if is_perfect_number(num)]
for number in perfect_numbers:
print(number)
相关问题
打印100以内的素数py
好的,以下是打印100以内的素数的Python代码:
```python
for num in range(2, 101):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
```
代码解释:
- 第一个for循环遍历2到100的所有数;
- 第二个for循环遍历2到当前数之间的所有数;
- 如果当前数可以被之前的任意一个数整除,则跳出内部循环;
- 如果当前数不能被之前的任何一个数整除,则说明它是素数,打印出来。
希望能帮到你!
py写一个1000以内所有完数
以下是Python代码,用于找出1000以内的所有完数:
```python
from functools import reduce
def sum(a, b):
return a + b
for i in range(2, 1001):
l = [1]
for j in range(2, int(i / 2 + 1)):
if i % j == 0:
l.append(j)
if i == reduce(sum, l):
print("完数为:", i)
print("它的因子为:", l)
```
输出结果为:
```
完数为: 6
它的因子为: [1, 2, 3]
完数为: 28
它的因子为: [1, 2, 4, 7, 14]
完数为: 496
它的因子为: [1, 2, 4, 8, 16, 31, 62, 124, 248]
```
阅读全文