求正整数2和n(n≤30000)之间的所有完全数,一行输出一个。 所谓完全数:因子之和等于它本身的自然数,如6=1+2+3,注意因子包括1但不包括自身。
时间: 2023-12-05 19:59:00 浏览: 16
C语言程序设计-计算并输出给定整数n的所有因子之和(不包括1与自身);注意:n的值不大于1000.c
5星 · 资源好评率100%
以下是一个 Python 代码实现:
```python
for n in range(2, 30001):
factors_sum = 1
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
factors_sum += i
if i != n // i:
factors_sum += n // i
if factors_sum == n:
print(n)
```
解释:
我们从 2 到 30000 遍历每个数 n,对于每个 n,我们计算它的因子之和 factors_sum。具体地,我们从 2 到 n 的平方根 int(n ** 0.5) + 1 遍历每个数 i,若 i 是 n 的因子,则将它加入 factors_sum,并且将另一个因子 n // i(如果存在)也加入 factors_sum。最后,如果 factors_sum 等于 n,那么 n 就是一个完全数,我们将它输出。
阅读全文