#include<cstdio>
int n,m,p,ok;
int powermod(int a,int b){
int ans=1;
a=a%1000;
while(b>=1){
if(b%2==1)
ans=((ans%1000)*(a%1000))%1000;
b=b/2;
a=((a%1000)*(a%1000))%1000;
}
return ans;
}
int main(){
freopen("3085.in","r",stdin);
freopen("3085.out","w",stdout);
scanf("%d",&p);
for(n=1;n<=1000;n++){//人为规定个最大上限
if(ok==1) break;
for(m=n+1;m<=1000;m++){//人为规定个最大上限
int nn=powermod(p,n);
int mm=powermod(p,m);
if(nn==mm){
printf("%d %d",m,n);
ok=1;
break;
}
}
}
return 0;
}
题解:快速幂,对于搜索n和m的范围人为规定个最大上限。