传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1014

水题:

直接暴力破解,把所有的算一遍,看看0~mod-1之间的数字是否全部出现过

#include<stdio.h>
#define maxn 100000



int main() {
    int step, mod;
    while(~scanf("%d%d", &step, &mod)) {
        int a[maxn] = {0};
        int  x =  0;
        for(int i = 0; i < maxn; i++) {
            x = (x + step) % mod;
            a[x] = 1;
        }
        int ok;
        for(int i = 0; i < mod; i++) {
            ok = 1;
            if(!a[i]) {
                ok = 0;
                break;
            }
        } 
        printf("%10d%10d    ", step, mod);
        if(ok) {
            printf("Good Choice\n");
        } else {
            printf("Bad Choice\n");
        }
        printf("\n");
    }
    return 0;
}

还有一种解法,牵涉到数论,以后再更