描述
自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n(包括n)以内的自守数的个数
数据范围: 1≤n≤10000
输入描述:
int型整数
输出描述:
n以内自守数的数量。
示例1
输入:
6
输出:
4
说明:
有0,1,5,6这四个自守数
示例2
输入:
1
输出:
2
说明:
有0, 1这两个自守数
#include <stdio.h>
//判断自守数
int isSelf(int x)
{
int square=x*x;
int flag=1;
while (x) {
if(x%10!=square%10)
{
flag=0;
break;
}
x/=10;
square/=10;
}
if(flag==0) //非自守数
return 0;
else //是自守数
return 1;
}
int main() {
int n;
scanf("%d",&n);
int i=0;
int count=0;
for(i=0;i<=n;i++)
{
if(isSelf(i))
count++;
}
printf("%d",count);
return 0;
}