任务描述
一个数如果恰好等于它的因子之和,这个数就成为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序打印出[a,b]区间所有的完数,并按如下格式输出其所有因子:
6 its factors are 1,2,3
输入格式:
一行两个正整数A,B(两个数均大于5,且A<B)
输出格式:
输出1000以内所有的完数及其因子,每行一个完数。如果没有则输出:Not found!
输入样例:
6 100
输出样例:
6 its factors are 1,2,3
28 its factors are 1,2,4,7,14
输入样例:
100 200
输出样例:
Not found!
#include<stdio.h>
int wanshu(int n){
int i,sum=0,j=0,p=0;
int a[100];
for(i=1;i<n;i++){
if(n%i==0){
sum+=i;
a[j]=i;
j++;
}
}
if(sum==n){
printf("%d its factors are ",n);
for(p=0;p<j-1;p++)
printf("%d,",a[p]);
printf("%d",a[j-1]);
printf("\n");
return 1;
}
else
return 0;
}
int main(){
int n,b,temp=0;
scanf("%d%d",&n,&b);
for(n;n<=b;n++){
if(wanshu(n)==1)
temp++;
}
if(temp==0)
printf("Not found!");
}