n^2/10%10*10+n^2%10=n,满足这个条件就可以了,用一个循环
[此贴子已经被作者于2007-4-9 22:36:31编辑过]
可求10000000以内所有同构数。#include <stdio.h>void main(){long i,j,s;for(i=2;i<10000000;i++){ s=i*i; j=i; while(j>0) { if((j%10)!=(s%10)) break; j=j/10; s=s/10; } if(j==0) printf("%6d",i);
}}
main(){int i,num;for(i=1;i<10;i++)
{num=i*i; if(num%10==i) { if(num*num%100==num) { printf("%d %d\n",i,num); } } } getch();}
[此贴子已经被作者于2007-4-9 23:42:41编辑过]
7楼表述有误,不能说“25是625的同构数”,应该说“25是一个同构数”,因为25满足:它的平方数625中的最右边包含25本身