c语言求完数,一个数恰好等于其因子之和称之为完数,求一千以内的完数并按格式输出,怎么输出不会啊
通过枚举1到1000内的每一个正整数,然后计算其因子之和是否等于该数本身来判断是否为完数。
#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 / 2; j++) {
if (i % j == 0) {
sum += j;
}
}
// 判断是否为完数并输出
if (sum == i) {
printf("%d = 1", i);
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
printf(" + %d", j);
}
}
printf("\n");
}
}
return 0;
}
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
#include<stdio.h>
int main()
{
int i, t, sum; //t代表数的因子,sum代表一个数的因子之和
for(i = 1; i <= 1000; i++)
{
sum = 0;
for(t = 1; t <= i/2; t++)
{
if(i % t == 0){
sum += t;
}
}
if(sum == i){
printf("%-10d", i);
}
}
return 0;
}
输出:
6 28 496
C语言入门题目文章导航: