和法一类似。用数组存储没个余数。然后再判断,数组不为0的个数。。。
// File Name: 1014.cpp
// Author: Toy
// Created Time: 2013年03月08日 星期五 17时31分14秒
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <cctype>
#include <cmath>
#include <string>
#include <algorithm>
#include <cstdlib>
using namespace std;
int step, mod, cmp, A[100010], i;
int main ( ) {
while ( scanf ( "%d%d", &step, &mod ) != EOF && step >= 1 && mod <= 100000 ) {
int tmp = 0;
memset ( A, 0, sizeof ( A ) );
for ( i = 1; i <= mod; ++i ) {
cmp = ( tmp + step ) % mod;
A[cmp]++;
if ( A[cmp] == 2 ) break;
tmp = cmp;
}
for ( i = 0; i < mod; ++i )
if ( A[i] != 1 ) break;
printf ( "%10d%10d ", step, mod );
if ( i == mod ) printf ( "Good Choice\n\n" );
else printf ( "Bad Choice\n\n" );
}
return 0;
}