HDU 1014 [Uniform Generator]

题目链接: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;
} 

  

posted @ 2017-02-16 15:12  哇咔咔咔  阅读(195)  评论(0编辑  收藏  举报