题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014
题目大意:
有Step和Mod两个数可以生成循环序列:0、Step %Mod、2Step%Mod、3Step%Mod……。
给出这两个数,问能否使生成的序列中包含0、1、2、……Mod-1.若能就格式化输出Good Choice,否则格式化输出Bad Choice
关键思想:当且仅当生成元互质时能输出完整序列。
代码如下
//生成元互质,注意输出格式 #include <iostream> using namespace std; //最大公约数为1即互质 int gcd(int a,int b){ return a%b==0?b:gcd(b,a%b); } int main(){ int step,mod; while(cin>>step>>mod) 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; }