hpuoj 【1116】完数【枚举】

来源:互联网 发布:苏州爱知科技 编辑:程序博客网 时间:2024/05/24 02:34

1116: 【C语言程序设计】[5.4.4]完数 [枚举]

时间限制: 1 Sec 内存限制: 128 MB

提交: 213 解决: 74 

题目描述

一个数如果恰好等于它的因子之和,这个数就称为“完数”。如,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解析:     直接依据题意进行判断就好。注意输出格式。程序如下:
#include<cstdio>int main(){    int n,i,j,k,a[100003];    while(scanf("%d",&n)!=EOF)    {    for(i=2;i<=n;i++)    {int sum=0,k=0;    for(j=1;j<i;j++)          if(i%j==0)   {sum+=j;a[k++]=j;    }if(sum==i){   printf("%d its factors are ",i);for(j=0;j<k;j++)   printf("%d%c",a[j],j==k-1?'\n':',');        }     }}    return 0; }