如果某個數?K?的平方乘以?N?以后,結果的末尾幾位數等于?K,那么就稱這個數為“N-自守數”。例如?3×92?2??=25392,而?25392?的末尾兩位正好是?92,所以?92?是一個?3-自守數。
本題就請你編寫程序判斷一個給定的數字是否關于某個?N?是?N-自守數。
輸入格式:
輸入在第一行中給出正整數?M(≤20),隨后一行給出?M?個待檢測的、不超過 1000 的正整數。
輸出格式:
對每個需要檢測的數字,如果它是?N-自守數就在一行中輸出最小的?N?和?NK?2???的值,以一個空格隔開;否則輸出?No
。注意題目保證?N<10。
輸入樣例:
3
92 5 233
輸出樣例:
3 25392
1 25
No
#include<iostream> using namespace std;bool isEqual(int n,int x){while(n != 0 && x != 0){if(x % 10 != n % 10) return false;x /= 10;n /= 10;}return true; }int main(){int m;cin >> m;while(m--){int n;cin >> n;int temp = n*n;bool flag = true;for(int i = 1; i < 10; i++){int ans = i * temp;if(isEqual(ans,n)){cout << i << " " << ans << endl;flag = false;break;} }if(flag)cout << "No" << endl;}return 0; }
?