题目大意:就是给你一个增量a和模数b,问你这个数能根据上面给的公式产生0 ~b-1的数吗?
解题思路:就是问给出的a 和 b 除1以外还有公因子吗?有的话不能产生上述的数。没有就可以。因为一旦有公因数, 从0开始加a,因为有公因子n(n> 1),这样的话,a* n == b,说明从0 开始总会到b,这样在模b,余数就又是0.这样就又来一次。而且因为这种有除1以外的因子的增量一定不是1,所以中间会漏掉一些数。注意a, b 没有给大小关系。而且每个输出要有一个空白行,这个没做也是WA。
#include<stdio.h>
int step, mod;
int main() {
while(scanf("%d %d", &step, &mod) != EOF) {
int i;
for( i = 2; i <= step && i <= mod ; i++) {
if(step % i == 0 && mod % i == 0)
break;
}
if(step % i == 0 && mod % i == 0)
printf("%10d%10d Bad Choice\n\n", step, mod);
else
printf("%10d%10d Good Choice\n\n", step, mod);
}
return 0;
}