题目大意:给你一个公式seed(x+1) = 【seed(x) + step】 % mod,给你step和mod,问能不能出现一个数字不重复的,长度为mod的环
解题思路:括号内的的增长总是以step*n,如果step和mod的最大公约数不是1的话,而是m的话,就表示经过了m次后,(k+step) %mod就会出现重复了,所以只有当最大公约数是1的时候,才会出现数字不重复,长度为mod的环
#include<cstdio>
#include<cstring>
int gcd(int a, int b) {
return b ? gcd(b,a%b) : a;
}
int main() {
int STEP, MOD;
while(scanf("%d%d",&STEP, &MOD) != EOF) {
if(gcd(STEP, MOD) == 1)
printf("%10d%10d Good Choice\n\n",STEP,MOD);
else
printf("%10d%10d Bad Choice\n\n",STEP,MOD);
}
return 0;
}