编制程序找出1~1000的全部同构数。

一个数出现在自己平方数的右边,则称为该数为同构数,例如:5*5=25,25*25=625。
由于数比较少可以用悔皮桥枚举法,以下是delphi代码,很容易转化握渗成其他语言Procedure Find(Var Num:integer);Var i,j:integer; s1,s2:string;begin for i:=0 to 999 do begin j:=sqr(i+1);
s1:=inttostr(j); //数字转化为字符串
s2:=inttostr(i+1); //数字转化为字符串
if pos(s2,s1)<>0 then //s2中是否碧猛有s1
//输出
end; end;
#include<iostream.h>
void main()
{
int i,n;
for(i=1;i<=100;i++)
{
n=i*i;
if(n%10==i||n%100==i||n%1000==i)
{
cout<<粗笑态岩源i<<" ";
}
}
cout<升轮<endl;
} 这是C++的
#include<槐薯stdio.h>
main()
{
int i,j;
for (i=1;i<=1000;i++)
{
j=i*i;
if(j%10==i) printf("%d\凯圆t%d\n"盯明塌,i,j); }
}