题目已经说明了2<=N<100
故可分为以下两种情况分析:
①2<=N<=10:当N=5或N=6时,满足守形数的条件,返回真,其余一位数不满足,返回假
②10<=N<100:当N>=10时,因为都是两位数,故其平方对100取模即可提取出最低的两位数,与i对比若相同则满足条件,返回真
③1、2都不满足返回假

#include <iostream>
#include <cstdio>
using namespace std;
bool check(int i){
    if(i == 5 || i == 6){
        return true;
    }
    if(i >= 10){
        if((i * i) % 100 == i){
            return true;
        }
    }
    return false;
}
int main(){
    int n;
    while(~scanf("%d", &n)){
        if(check(n)){
            printf("Yes!\n");
        }else{
            printf("No!\n");
        }
    }
    return 0;
}