说的没错,因子当然能被这个数整除啦!
奋斗改变一切!!
[CODE]
#include "stdio.h"
int Calculate(int k)
{
int i,sum=0;
for(i=1;i<k;i++) /*这里计算的因子不包括它自己*/
if(k%i==0)
sum+=i;
return k==sum?1:0;
}
int main()
{
int j;
for(j=1;j<1000;j++)
if( Calculate(j) )
printf("%4d\t",j);
return 0;
}
[/CODE]
#include "stdio.h"
#include "math.h"
int Calculate(int k)
{
int i,st,num,sum=1;
st=(int)sqrt(k);
for(i=2;i<st+1;i++)
if(k%i==0)
{
num=k/i;
sum+=i+num;
}
return k==sum?1:0;
}
int main()
{
int j;
for(j=2;j<1000;j++)
if( Calculate(j) )
printf("%4d\t",j);
getch();
return 0;
}
稍微改了版主老大的程序,运行应该更快些