完数
找出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;的位置很关键。