题目描述
编写一个判断一个数是否是完数的函数,用main()函数调用。并求n—m以内的完数有哪些?
一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。
输入
输入为多组测试数据。
输入n和m( 1 <= n <=m <=10000)
输出
输出n到m之间的所有完数,两个完数之间用一个空格隔开
样例输入
2 8
样例输出
6
#include<stdio.h>
int ws(int x);
int main(){
int n,m,i;
while(scanf("%d%d",&n,&m)!=EOF){
for(i=n;i<=m;i++){
if(ws(i)==1){
printf("%d ",i);
}
}
printf("\n");
}
return 0;
}
int ws(int x){
int r,sum=0,k;
for(r=1;r<x;r++){
if(x%r==0)sum=sum+r;
}
if(x==sum)k=1;
else k=0;
return k;
}