一:求1—1000之间的完数;
1:了解完数,(因子之和等于数本身)
使用循环结构,得出可以被这个数之前的数都可以除干净的数,
切将其因子求和,后返回。
2:返回子函数,与本数比较是否相等。
#include<stdio.h>
int factorsum(int number);
int main()
{
int i,m,n,number;
printf("Eentern m n(m>=1,n<=1000):");
scanf("%d%d",&m,&n);
printf("完数为:");
for(i=m;i<=n;i++) //对n m之间的数一一带入子函数
if(factorsum(i)==i)
printf("%d\t",i);
printf("\n");
return 0;
}
//求因子之和子函数
{
int q,sum,x;
sum=0;
for(q=1;q<number;q++){ //循环求因子和
x=number%q;
if(x==0)
sum=sum+q;}
return sum;
}
int reserch(int number);
int main(void)
{
int n,p;
printf("Entern a number:");
scanf("%d",&n);
p=reserch(n); //调用子函数
printf("%d\n",p);
return 0;
}
int reserch (int number)
{
int q,x;
if(number>0)
x=1;
else
x=-1;
q=0;
do{
q=q*10+number%10; //求逆序数
number=number/10;
}
while
(number!=0); //循环终止条件
return q*x;
}