pat乙級 1091 N-自守數 (15 分)


 

如果某個數 K 的平方乘以 N 以后,結果的末尾幾位數等於 K,那么就稱這個數為“N-自守數”。例如 3×922​​=25392,而 25392 的末尾兩位正好是 92,所以 92 是一個 3-自守數。

本題就請你編寫程序判斷一個給定的數字是否關於某個 N 是 N-自守數。

輸入格式:

輸入在第一行中給出正整數 M(20),隨后一行給出 M 個待檢測的、不超過 1000 的正整數。

輸出格式:

對每個需要檢測的數字,如果它是 N-自守數就在一行中輸出最小的 N 和 NK2​​ 的值,以一個空格隔開;否則輸出 No。注意題目保證 N<10。

輸入樣例:

3
92 5 233

輸出樣例:

3 25392
1 25
No

代碼:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define MAX 10000
#define DMAX 10000
using namespace std;
typedef long long ll;
int m,k;
int main() {
    scanf("%d",&m);
    for(int i = 0;i < m;i ++) {
        scanf("%d",&k);
        int j;
        int c = 1;
        int ans = 0;
        for(j = (int)(log10(k) + 1);j > 0;j --) {
            c *= 10;
        }
        for(j = 1;j < 10;j ++) {
            ans = k * k * j;
            if(ans % c == k) break;
        }
        if(j < 10) printf("%d %d\n",j,ans);
        else puts("No");
    }
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM