思路:直接判断循环的数量num是否与mod相等
#include<stdio.h>
#include<string.h>
int vis[100005];
int main(){
int step, mod, seed, num, flag;
while (scanf("%d %d", &step, &mod) != EOF){
num = seed = 0,flag = 1;
memset(vis, 0, sizeof(vis));
while (num < mod){
seed = (seed + step) % mod;
num++;
if (!vis[seed])
vis[seed] = 1;
else{
flag = 0;
break;
}
}
if (flag)
printf("%10d%10d%15s\n", step, mod, "Good Choice");
else
printf("%10d%10d%14s\n", step, mod, "Bad Choice");
printf("\n");
}
return 0;
}