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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 18:57:57

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

计算1-500之间的全部同构数之和
#includestdio.h
void main()
{
int n,he=0,a=0;
double pingfang;
for(n=4;n10;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;n100;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);

同构数???

1+5+6+25+76+376=489

首先了解下同构数的概念:同构数是这样一组数:它出现它的在平方数的右边
1-500之前的同构数有1,5,6,25,76,376
1-500之间的同构数之和为:1+5+6+25+76+376=489