求完数。 如果一个正整数的所有因子之和等于该正整数,则称这个正整数为完全数。 编写程序读入n,输出不超过n的全部完全数,1不是完全数。(一个数n的因子即是在1~n-1范围内能被其整除的数)。(提交.txt源程序代码) 用c语言写
时间: 2024-06-01 12:11:25 浏览: 13
#include <stdio.h>
int main() {
int n, i, j, sum;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("不超过%d的完全数有:\n", n);
for (i = 2; i <= n; i++) { // 从2开始,1不是完全数
sum = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
相关问题
求完数。 如果一个正整数的所有因子之和等于该正整数,则称这个正整数为完全数。 编写程序读入n,输出不超过n的全部完全数,1不是完全数。(一个数n的因子即是在1~n-1范围内能被其整除的数)。(提交.txt源程序代码)
```python
n = int(input())
for i in range(2, n+1):
factors = []
for j in range(1, i):
if i % j == 0:
factors.append(j)
if sum(factors) == i:
print(i)
```
如果一个正整数的所有因子之和等于该正整数,则称这个正整数为完全数。编写程序读入n,输出不超过n的全部完全数。如6=1+2+3 28=1+2+4+7+14。
以下是Python代码实现:
```python
n = int(input())
for i in range(1, n+1):
factors_sum = 0
for j in range(1, i):
if i % j == 0:
factors_sum += j
if factors_sum == i:
print(i, end=' ')
```
首先读入n,然后从1到n遍历所有正整数。对于每个正整数i,计算它的所有因子之和factors_sum,方法是从1到i-1遍历,如果j能够整除i,则累加到factors_sum中。最后,如果factors_sum等于i,则说明i是完全数,输出i。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)