c求1000以内的完数
时间: 2024-01-22 12:04:22 浏览: 70
以下是两种C语言求1000以内完数的例子:
1.使用两个for循环,分别求出每个数的因数之和,判断是否等于原数,如果相等则输出该数为完数。
```c
#include<stdio.h>
int main() {
int a, i, sum = 0, b=0;//a记录因数之和,sum记录1000以内的完数之和,b记录个数
for (i = 1; i <= 1000; i++) {
a = 0;//保证每次大循环a都为0;
for (int j = 1; j < i; j++)//小循环求因数
{
if (i % j == 0) {
a += j;//记录因数之和
}
}
if (a == i)//判断因数之和是否等于原数
{
printf("%d是完全数\n", i);
sum+=i;
b++;
}
}
printf("1000以内共有%d个完全数,这些完全数的和为%d", b, sum);
return 0;
}
```
2.使用两个for循环,分别求出每个数的因数之和,判断是否等于原数,如果相等则输出该数为完数。
```c
#include <stdio.h>
int main(int argc, char *argv[]) {
int sum=0;
for(int i=2;i<1000;i++){
sum=0;
for(int j=1;j<i;j++) {
if(i%j==0) {
sum+=j;
}
}
if(sum==i) {
printf("%d是完数",i);
}
}
printf("\n");
return 0;
}
```
阅读全文