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