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; }