同构数是出现在它的平方的右边的数(例:5*5=25,6*6=36)
常见1-10000之间的同构数为:
1 1
5 25
6 36
25 625
76 5776
376 141376
625 390625
9376 87909376
求取方法:
方法1:
#include <iostream>
using namespace std;
int main()
{
long i,j,k;
k = 10;
for(i = 1; i <= 10000; i++)
{
if(i==k)
{
k *= 10;
}
j = i * i;
if(j%k==i)
{
cout << "同构数:" << i << "结果为:" << j << endl;
}
}
return 0;
}
方法2:
#include <iostream>
using namespace std;
int main()
{
for(int i=1;i<10000;i++)
{
if(i<10&&i==i*i%10)
cout<<i<<endl;
else
if(i<100&&i==i*i%100)
cout<<i<<endl;
else
if(i<1000&&i==i*i%1000)
cout<<i<<endl;
else
if(i==i*i%10000)
cout<<i<<endl;
}
return 0;
}