Back to list of problems
Uniform Generator
408.c
#include <stdio.h> #include <stdlib.h> #include <string.h> unsigned int next(unsigned int num, unsigned int step, unsigned int mod) { return ((num+step)%mod); } int good_choice(unsigned int step, unsigned int mod) { int num=0; int i; for(i=0; i<mod-1; i++) { num = next(num, step, mod); if (num==0) { return 0; } } num = next(num, step, mod); if (num==0) { return 1; } else { return 0; } } int main(void) { char buf[1024]; unsigned int step, mod; while(fgets(buf, 1024, stdin)) { if (sscanf(buf, "%d %d", &step, &mod)!=2) { exit(1); } if (good_choice(step, mod)) { printf("%10d%10d Good Choice\n\n", step, mod); } else { printf("%10d%10d Bad Choice\n\n", step, mod); } } exit(0); }