同构数
同构数是这样一种数:它出现在它的平方数的右端。例如:5的平方是25,5就是同构数,25的平方是625,25也是同构数。
再比如:100以内的同构数有1 5 6 25 76这5个整数。
请编程计算出1~N之间(包括N)的全部同构数有多少个?
再比如:100以内的同构数有1 5 6 25 76这5个整数。
请编程计算出1~N之间(包括N)的全部同构数有多少个?
输入格式
一个正整数N,N<=10000。
输出格式
一个整数,代表1~N之间的全部同构数的个数。
输入:
100
输出:
5
#include<bits/stdc++.h>
using namespace std;
int n,ans;
int f(int x)
{
int w=x*x;
if(x<10&&w%10==x) return 1;
if(x<100&&w%100==x) return 1;
if(x<1000&&w%1000==x) return 1;
if(x<10000&&w%10000==x) return 1;
return 0;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
ans+=f(i);
cout<<ans;
return 0;
}