c语言编写程序:求出1-100之间的完全数.所谓完全数是指这样的数,该数刚好等于

如题所述

#include <stdio.h>

#define MAX 100 /*100以内的完全数*/

int main (void) {
int x,temp,sum; /*X表示要判断的数,temp表示数的因子,sum表示因子之和*/

for (x=1; x<=MAX; x++) {
sum= 0;
for(temp=1; temp<x; temp++) { /*判断x能否被temp整除,如果可以,则是因子,进行求和*/
if(x%temp==0)
sum= sum+temp;
}
if(sum==x) /*如果是完数,打印输出*/
printf("%d\t",x);
}

putchar ('\n');
fflush (stdin);
getch ();
return 0;
}

运行结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-11

#include <stdio.h>


int main(){

printf("1-100之间的完全数:\n");

int i;


for(i = 1; i <= 100; ++i){

int sum = 0;    //sum用来保存约数的和

int j;

for(j = 1; j <= i/2; ++j){

if(j != i && i%j == 0){

sum += j;

}

}

if(sum == i){   //如果是完全数,打印

printf("%d ", i);

}

sum = 0;

}


return 0;

}

第2个回答  2015-05-07
#include<stdio.h>

int main()
{
    int i;
    for(i=1;i<=100;i++)
    {
        int sum=0;
        for(j=1;j<i;j++)
        {
            if(i%j==0) sum+=j;
        }
        if(sum==i) printf("%d\n",i);
    }
    return 0;
}

本回答被网友采纳
第3个回答  2018-12-04
#include <stdio.h>
int main(){
printf("1-100之间的完全数:\n");
int i;
for(i = 1; i <= 100; ++i){
int sum = 0; //sum用来保存约数的和
int j;
for(j = 1; j <= i/2; ++j){
if(j != i && i%j == 0){
sum += j;
}
}
if(sum == i){ //如果是完全数,打印
printf("%d ", i);
}
sum = 0;
}
return 0;
}
第4个回答  推荐于2017-09-14
#include <stdio.h>
void main()
{
int i,j,s=0;
for(i=1;i<=100;i++)
{
for(j=1;j<i;j++)
if(i%j==0) s+=j;
if(i==s) printf("%d ",i);
s=0;
}
}

本回答被网友采纳
相似回答