完数

找出1000之内的所有完数,并输出其因子

一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,且6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,按如下格式输出其因子:6 its factors are 1 2 3

#include<stdio.h>
int main(){
    int i,j,k,m;
    int x,sum;
    int ma[100]={0};
    for(x=1;x<1000;x++){
        sum=1;
        k=0;
        for(i=2;i<x;i++){
            if(x%i==0){
                sum+=i;
                ma[k++]=i;
            }
        }
        if(sum>1&&sum==x){
        printf("%d its factors are ",sum);
        for(m=0;m<k;m++){
            printf("%d ",ma[m]);
        }
        printf("\n");
        }
    }
    
    return 0;
}

注意双重循环中,不要忘记对内循环的变量进行重新初始化,即本题的sum=1;k=0;的位置很关键。

posted @ 2023-11-27 10:59  清幽硕  阅读(11)  评论(0编辑  收藏  举报