数组用的很巧妙,不错的想法
#include<stdio.h>
#include<string.h>
int main(){
int num[1010];
int n,k,i;
long long s;
scanf("%d",&k);
while(k--){
memset(num,0,sizeof(num));
scanf("%d",&n);
s=1;i=0;
while(s<1000){
s*=n;
i++;
}
s%=1000;
num[s]=i;
while(1){
s=s*n%1000;//这里有可能会超出int型范围,则s 应该用long long型
i++;
if(num[s]){
break;
}else{
num[s]=i;
}
}
printf("%d\n",num[s]+i);
}
return 0;
}