题解 | 自守数
自守数
https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e
#include <iostream>
using namespace std;
int main() {
int n;cin>>n;
int c=0;
for(int i=0;i<=n;i++){
if(i%10!=0&&i%10!=1&&i%10!=5&&i%10!=6)continue;
//观察到只有尾数为0,1,5,6的数字才可以
int num=1,t=i;
//num为>=i的最小的10的次方数
while(t){
num*=10;t/=10;
}
if(i*i%num==i)c++;
}
cout<<c;
}