展开全部
整数int长度不够,把除int a外的所有int 改成long long,最长的,就可以了。
如果long long还不满足需求,可以再写一个大数乘法与求余,实现e68a84e8a2ad3231313335323631343130323136353331333366303231判断是否同构就好了//因为5位数平方以后就已经超过了int的最大了。所以,修改数据类型才是正解。
#include
#include
int isomorphism(long long int i,long long int mod){
if ( i== i*i%mod)
return 1 ;
return 0;
}
int main(){
int a;
long long int i;
while (scanf("%d",&a)!=EOF){
for (i=pow(10,a-1);i!=pow(10,a);++i){
if(isomorphism(i,pow(10,a))==1)
printf("%lld ",i);
}
printf("\n");
}
return 0;
}
//运行结果:
4
9376
5
90625
6
109376 890625
7
2890625 7109376
8
12890625 87109376
9
212890625 787109376