题目描述
一个数如果恰好等于它的因子之和,这个数就称为“完数”。如,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<stdio.h>
- int main()
- {
- int n,sum,i,j;
- scanf("%d",&n);
- for(i=1;i<=n;i++)
- { sum=0;
- for(j=1;j<=i-1;j++)
- if(i%j==0) sum+=j;
- if(sum==i)
- {
- printf("%d its factors are 1",i);
- for(j=2;j<=i-1;j++)
- if(i%j==0) printf(",%d",j);
- printf("\n");
- }
- }
- return 0;
- }
解决完数问题
猜你喜欢
转载自blog.csdn.net/doubleguy/article/details/80146679
今日推荐
周排行