本质是取余运算,获得余数判断与本身是否相等
自守数
http://www.nowcoder.com/questionTerminal/88ddd31618f04514ae3a689e83f3ab8e
本质是获取比自己高一位的10进制数的余数与自身是否相等的算法;
比如,一个数是x,她是一个两位数,那么就是计算他的平方最后两位的余数是否与自身相等。于是只需要求得比他大的10的三次方的数,然后取平方之后数字的余数,判断是否相等即可。
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int inum;
while(cin>>inum){
int cnt=0;
for(int i=0;i<=inum;i++){
int temp=pow(i,2);
int factor=1;
while(i/factor){
factor*=10;
}
if(temp%factor==i){
cnt++;
}
}
cout<<cnt<<endl;
}
return 0;
}
