解决完数问题

  1. 题目描述

    一个数如果恰好等于它的因子之和,这个数就称为“完数”。如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。

    给出一个n,请输出n以内(包含n)的所有完数。

    输入

    每组测试有一个整数n(1<=n<=1000),保证n以内(包含n)至少有一个完数。

    输出

    请从小到大输出n以内(包含n)的所有完数,并仿照示例输出的格式输出它的因子。

    每个完数占一行。

    样例输入

    10
    

    样例输出

    6 its factors are 1,2,3
    
  2. #include<stdio.h>
  3. int main()
  4. {
  5. int n,sum,i,j;
  6. scanf("%d",&n);
  7. for(i=1;i<=n;i++)
  8. { sum=0;
  9. for(j=1;j<=i-1;j++)
  10. if(i%j==0) sum+=j;
  11. if(sum==i)
  12. {
  13. printf("%d its factors are 1",i);
  14. for(j=2;j<=i-1;j++)
  15. if(i%j==0) printf(",%d",j);
  16. printf("\n");
  17. }
  18.  
  19. }
  20. return 0;
  21. }

猜你喜欢

转载自blog.csdn.net/doubleguy/article/details/80146679