求正整数2和n之间的所有完全数,一行输出一个C语言
时间: 2023-05-24 13:06:40 浏览: 56
程序。
```c
#include <stdio.h>
int main() {
int n, i, sum;
scanf("%d", &n);
for(i = 2; i <= n; i++) {
sum = 1;
for(int j = 2; j * j <= i; j++) {
if(i % j == 0) {
if(j == i / j) {
sum += j;
} else {
sum += j + i / j;
}
}
}
if(sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
相关问题
求正整数2和n之间的所有完全数C语言
完全数是指一个正整数的所有因子(除了自身)之和等于它本身的数。以下是求正整数2和n之间的所有完全数的C语言代码:
```c
#include <stdio.h>
int main() {
int n, i, j, sum;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("2到%d之间的完全数有:\n", n);
for (i = 2; i <= n; i++) {
sum = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
```
该代码中使用了两个for循环嵌套,外层循环控制数字的范围,内层循环计算所有因子之和。判断是否为完全数的条件是所有因子之和等于该数字本身。输出所有完全数时,使用printf函数将符合条件的数字依次输出。
c语言求正整数2和n之间的所有完全数
以下是一个C语言程序,可以求出正整数2和n之间的所有完全数:
```c
#include <stdio.h>
int main() {
int n, i, j, sum;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("2到%d之间的完全数有:\n", n);
for (i = 2; i <= n; i++) {
sum = 1;
for (j = 2; j <= i/2; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
程序的运行过程如下:
1. 首先提示用户输入一个正整数n;
2. 然后通过循环枚举2到n之间的每一个正整数i;
3. 对于每一个i,通过嵌套循环计算i的因子之和sum;
4. 如果sum等于i,则i是一个完全数,将其输出。
需要注意的是,完全数并不是很常见,比较小的完全数只有6、28、496、8128等几个,因此程序可能输出的结果并不多。