2016-08-12
UVA - 408 Uniform Generator
题目大意:给出 step 和 mod,根据 seed(x+1)=[seed(x)+step]%10mod,问产生的随机数是否均匀分布于 0 到 mod-1。
解题思路:判断2个数是不是互质,用辗转相除法就好了。
#include <iostream>
#include <cstdio>
using namespace std;
int gcd(int x, int y) {
if (y == 0)
return x;
else
return gcd(y, x % y);
}
int main() {
int n, m;
while ( ~scanf("%d%d", &n, &m) ) {
printf("%10d%10d ", n, m);
if (gcd(n,m) == 1)
printf("Good Choice\n");
else
printf("Bad Choice\n");
printf("\n");
}
return 0;
}