传送门: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;
}
还有一种解法,牵涉到数论,以后再更