计算1-500之间的全部"同构数"之和.

来源:百度知道 编辑:UC知道 时间:2024/05/22 20:32:17
计算1-500之间的全部"同构数"之和.所谓"同构数"是指一个数,他出现在他的平方数的右端.如6的平方是36.6出现在36的右端,6就是同构数!!!!!
问题补充:c语言啊,其他的不行的哦。

#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);
}
这样