一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:
6 its factors are 1,2,3
#include<stdio.h> int main(){ int i,n=1000,s=0; for(i=2;i<=n;i++){ //从2到1000,找完数 s=0; for(int j=1;j<=i/2;j++){ //找i的所有因数 if(i%j==0) s+=j; //对所有因数进行求和 } if(s==i){ //若为完数 printf("%d its factors are ",i); printf("1"); //输出因数1 for(int j=2;j<=i/2;j++) //找i的所有大于1的因数 if(i%j==0) printf(",%d",j); //输出大于1的所有因数 printf("\n"); } } return 0; }
#include <stdio.h> int main() { int i,j; int sum ; for(i = 2;i<=1000;i++){ sum = 0; for(j = 1;j < i;j++){ if(i%j==0){ sum = sum + j; } } if(i==sum){ printf("%3d its factors are",i); for(j = 1;j < i;j++){ if(i % j == 0){ printf("%5d",j); } } printf("\n"); } } return 0; }