int factorsum( int number )
{ int i,sum;
sum=0;
if(number==1) //特殊完数“1”单独处理
return 1;
for(i=1;i<number;i++)//循环找出因子,算出因子和
{
if((number%i)==0)
sum+=i;
}
return sum;
}
void PrintPN( int m, int n ){
int i,j,count;
count=0;
for(i=m;i<=n;i++) //循环【m,n】
{
if(factorsum(i)==i)//判断是否为完数
{
printf("%d = ",i); //输出等式左边及等号
if(i==1)
printf("%d",i); //输出完数“1”的式子
else //除了“1”以外的完数输出格式
{
for(int j=1;j<i;j++)
{
if(j==1)
printf("%d",j);
else
{
if(i%j==0)
printf(" + %d",j);
}
}
}
printf("\n"); //输出式子后换行
count++;
}
}
if(count==0) //判断是否完数
printf("No perfect number");
}
习题6-3 使用函数输出指定范围内的完数
最新推荐文章于 2023-10-31 11:53:59 发布