代码
#include <iostream>
#include <sstream>
#include <cmath>
using namespace std;
string intToStr(int num){
stringstream ss;
ss<<num;
string s;
ss>>s;
return s;
}
int main() {
int M;
cin>>M;
for(int i=0; i<M; i++) {
int a;
cin>>a;
string astr = intToStr(a);
int divisor = pow(10, astr.length());
bool hasFound = false;
for(int N=1; N<10; N++){
int divident = N*a*a;
if(divident%divisor==a){
cout<<N<<" "<<divident<<endl;
hasFound = true;
break;
}
}
if(!hasFound){
cout<<"No"<<endl;
}
}
return 0;
}
注解
1、先根据输入的数字长度,求出对应的末n位数,用于下面的取余操作。
2、从1-9遍历,然后取余,看末n位是否满足题意,如果满足就输出。