满意答案
#include"stdio.h"
void main()
{
int n,he=0,a=0;
double pingfang;
for(n=4;n<10;n++)
{
pingfang=n*n;
if((pingfang-n)%10==0) /*如果这个数是个位数,那么如果它的平方数减去它之后能够被10整除,就是同构数,比如6,平方是36,减去6后是30,除以10结果为3。而按照你的说法想要是同构数,那么至少这个数的平方要大于10,所以从4开始*/
{
printf("%5d",n);
he+=n;
a++; /*计数器,控制每行输出5个同构数*/
if(a%5==0)
printf("\n");
}
}
for(n=10;n<100;n++)
{
pingfang=n*n;
if((pingfang-n)/100==0) /*同理,如果是同构数,那么它的平方减去本身除以100也能被整除,因为平方数小于一百的部分已经完全被减去了*/
{
printf("%5d",n);
he+=n;
a++;
if(a%5==0)
printf("\n");
}
}
for(n=100;n<=500;n++)
{
pingfang=n*n;
if((pingfang-n)/1000==0) /*同理,如果是同构数,就能被1000整除*/
{
printf("%5d",n);
he+=n;
a++;
if(a%5==0)
printf("\n");
}
}
printf("1到500之间所有的同构数之和为:%5d\n",he);
}
00分享举报