qq头像动漫帅哥:输出一定范围内的完全数,函数练习
来源:百度文库 编辑:中财网 时间:2024/04/29 11:14:03
3. 输出一定范围内的完全数,函数练习
如果一个整数的各因子值之和等于该整数,那么这种整数称为完全数
/*输出一定范围内的完全数*/
#include
/*声明函数perfect判断一个数是否是完全数*/
int perfect(int);
/*声明函数 printPerfect,输出完全数*/
int printPerfect(int);
/*编程输出某范围内的整数中的完全数,使用函数*/
main()
{
/*定义整型变量num,from,to,countnum储存要判断的数,
*from,to储存输入的初值和末值;count存储完全
*数的个数
*/
int num,from,to,count=0;
printf("请输入判断范围(from,to):\n");
/*将始值和末值分别存入from,to*/
scanf("%d,%d",&from,&to);
printf("%d到%d之间的完全数有:\n",from,to);
/*从from到to逐一循环*/
for(num=from;num<=to;num++)
{
/*引用函数perfect判断是否为完全数*/
if(perfect(num))
{
printPerfect(num);
printf("\n");
/*如果是完全数count+1*/
count++;
}
}
printf("共计%d个完全数\n",count);
return(0);
}
/*定义函数perfect*/
int perfect(int num)
{
int sum,i;
sum=0;
/*从i到num-1逐一循环,判断num是否为完全数*/
for(i=1;i<=num-1;i++)
{
/*当num能被i整除时执行操作*/
if(num%i==0)
/*将sum+i的值重赋予sum*/
sum=sum+i;
}
/*当sum=num时执行操作返回值1,否则返回值0*/
if(sum==num)
return 1;
else
return 0;
}
/*定义函数printPerfect*/
int printPerfect(int num)
{
/*定义局部变量sum,i;sum用于判断输出是否结束*/
int sum,i;
sum=0;
printf("%d=",num);
/*从i到num-1逐一循环*/
for(i=1;i<=num-1;i++)
{
/*当num能被i整除时执行操作,输出i*/
if(num%i==0)
{
printf("%d",i);
sum=sum+i;
/*当sum不等于num时执行操作打印“+”*/
if(sum!=num)
printf("%c",'+');
}
}
}
运行效果如下: