C Style:
#include <bits/stdc++.h>
using namespace std;
inline int len(int n){ //求整数长度
int l=0;
do n/=10,l++;
while(n);
return l;
}
inline int pow_10(int n){ //求取得后几位的取模值
int ret=1;
while(n--) ret*=10;
return ret;
}
int main(){
int n;cin>>n;
while(n--){
int k;cin>>k;
for(int i=1;i<10;i++){
int sub=(i*k*k)%pow_10(len(k));
if(sub==k){
cout<<i<<' '<<t<<endl;k=0;break;}
}
if(k) cout<<"No\n";
}
return 0;
}
C++ Style:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;cin>>n;
while(n--){
int k;cin>>k;string s_k=to_string(k);
for(int i=1;i<10;i++){
string s_t=to_string(i*k*k);
string sub_t=s_t.substr(s_t.size()-s_k.size());
if(sub_t==s_k){
cout<<i<<' '<<s_t<<endl;k=0;break;}
}
if(k) cout<<"No\n"; //因为k为正整数,所以这里把k作为flag
}
return 0;
}