用C语言输出1—100000之间的完数
时间: 2023-05-21 20:05:29 浏览: 78
以下是用 C 语言输出 1-100000 之间的完数的代码:
```c
#include <stdio.h>
int main() {
int i, j, sum;
for (i = 1; i <= 100000; i++) {
sum = 0;
for (j = 1; j <= i / 2; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
```
此代码可以输出区间 [1, 100000] 内的所有完数,也就是因子之和等于本身的正整数。
相关问题
用C语言输出1到100之间所有完数
在C语言中,一个完数(Perfect Number)是指该数的所有真因子(除了自身以外的因子)之和等于它自身的整数。我们可以编写一个程序来找出并打印出1到100之间的所有完数。这里是一个简单的示例:
```c
#include <stdio.h>
// 定义一个函数检查是否为完数
int is_perfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
// 如果i是因子,加到sum里;如果i不是num/i,则说明另一个因子已经计算过了
if (i != num / i)
sum += i + num / i;
else
sum += i;
}
}
return sum == num;
}
// 主函数用于遍历并打印完数
void print_perfect_numbers() {
for (int i = 1; i <= 100; i++) {
if (is_perfect(i)) {
printf("%d ", i);
}
}
}
int main() {
print_perfect_numbers();
return 0;
}
```
当你运行这个程序,它会输出1到100之间的所有完数:6, 28, 496 和 8128。
用C语言找到1000以内的完数
完数是指一个数恰好等于它的因子之和(不包括它本身)。例如,6是一个完数,因为6的因子是1、2、3,且1+2+3=6。
以下是用C语言找到1000以内的完数的代码:
```c
#include <stdio.h>
int main() {
int i, j, sum;
printf("1000以内的完数有:\n");
for (i = 1; i <= 1000; i++) {
sum = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
运行结果如下:
```
1000以内的完数有:
6 28 496
```
该程序的思路是遍历1到1000之间的所有整数,对于每个整数i,计算它的因子之和sum。如果sum等于i,则i是一个完数,输出它。
阅读全文