题意:有一个数列 seed[x+1]=(seed(x)+step)%mod
给出 step 和 mod
如果求出的是以 1。。。mod-1 为循环节的数列 则为 good choice
否则 则是 bad choice
思路:1.用标记法 如果 形成循环节时 每个数都被标记到 则good choice
2.当两个数互素时 则 good choice
2.代码
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int gcd(int a,int b){return b==0?a:gcd(b,a%b); } int main() { int a,b; while(scanf("%d%d",&a,&b)!=EOF) { printf("%10d%10d",a,b); printf(" "); if(gcd(a,b)==1) printf("%s","Good Choice\n"); else printf("%s","Bad Choice\n"); printf("\n"); } return 0; }