PAT-B 1091 N-自守數
PAT-B 1091 N-自守數
https://pintia.cn/problem-sets/994805260223102976/problems/1071785664454127616
題目
如果某個數 K 的平方乘以 N 以後,結果的末尾幾位數等於 K,那麼就稱這個數為“N-自守數”。例如 3×92^2=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
分析
使用模除運算求得數的後幾位,具體看程式。
C++程式
#include<iostream>
using namespace std;
//設k為num位數,函式返回10^num
int solve(int k)
{
int t=1;
while(k>0)
{
t*=10;
k/=10;
}
return t;
}
int main()
{
int m,n,k;
scanf("%d",&m);
while(m--)
{
scanf("%d",&k);
for(n=1;n<10;n++)
{
int temp=solve(k);
if(k*k*n%temp==k)
break;
}
if(n<10)
printf("%d %d\n",n,n*k*k);
else
printf("No\n");//沒有
}
return 0;
}
相關文章
- C語言求200000以內的自守數C語言
- PAT-B 1013 數素數 【素數】
- PAT-B 1064 朋友數
- PAT-B 1051 複數乘法
- PAT-B 1007 素數對猜想【素數】
- PAT-B 1023 組個最小數
- PAT-B 1048 數字加密【字串】加密字串
- PAT-B 1062 最簡分數
- PAT-B 1057 數零壹【進位制】
- PAT-B 1060 愛丁頓數【排序】排序
- PAT-B 1030 完美數列【二分】
- PAT-B 1084 外觀數列 【模擬】
- PAT-B 1079 延遲的迴文數【字串+大數加法】字串
- PAT-B 1019 數字黑洞【陣列+模擬】陣列
- PAT-B 1017 A除以B【模擬 大數除法】
- PAT-B 1049 數列的片段和【規律】
- PAT-B 1056 組合數的和【規律】
- PAT-B 1021 個位數統計【對映】
- P1091 [NOIP2004 提高組] 合唱隊形
- PAT-B 1024 科學計數法【模擬+字串】字串
- PAT-B 1012 數字分類【簡單模擬】
- PAT-B 1002 寫出這個數 【字串+遞迴列印】字串遞迴
- PAT-B 1006 換個格式輸出整數【遞迴列印】遞迴
- PAT-B 1046 划拳
- PAT-B 1043 輸出PATest
- PAT-B 1052 賣個萌
- PAT-B 1076 Wifi密碼WiFi密碼
- PAT-B 1004 成績排名
- PAT-B 1015 德才論【排序】排序
- PAT-B 1016 部分A+B
- PAT-B 1020 月餅【貪心法】
- PAT-B 1027 列印沙漏 【模擬】
- PAT-B 1029 舊鍵盤【字串】字串
- PAT-B 1053 住房空置率
- PAT-B 1070 結繩【貪心】
- PAT-B 1093 字串A+B 【集合】字串
- PAT-B 1082 射擊比賽
- PAT-B 1009 說反話【字串】字串