题解:将种子设为0,然后通过题目的公式算出新的种子,再次带入,直到找到种子的周期,看这个周期是不是包含了所有从0到mod - 1的所有数,如果是就是good 否则就是bad.
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int step, mod, seed, flag, n;
while (scanf("%d%d", &step, &mod) != EOF) {
seed = flag = n = 0;
while (1) {
flag++;
seed = (seed + step) % mod;
if (seed == n)
break;
}
if (flag == mod)
printf("%10d%10d Good Choice\n\n", step, mod);
else
printf("%10d%10d Bad Choice\n\n", step, mod);
}
return 0;
}