一个正整数的真因子是指导所有能整除它的正整数(不包括自身)。
一个正整数的所有真因子之和等于其本身则被称为完数。
例如:6=1+2+3,6是完数;
而9不是,1也不是。
求在[m,n]之间的完数的个数。
#include "stdio.h"
int main()
{
int m,n,i,j,sum,k=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
if(sum==i)
{
k++;
}
}
}
printf("%d",k);
return 0;
}
修改如下,供对照参考:
#include "stdio.h"
int main()
{
int m,n,i,j,sum,k=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
{
k++;
}
}
printf("%d",k);
return 0;
}
最后一个分号错了,换成英文的分号。