PKU 1597

PKU 1597
http://acm.pku.edu.cn/JudgeOnline/problem?id=1597
这道题是冲着他是数论题去做的,开始对他给的这个式子
seed(x+1) = [ seed(x) + STEP ] % MOD很困惑,然后就开始翻算法导论,刚刚看完解模线性方程,看这个式子和这种方程长得有点相像,就在反复琢磨,钻牛角尖,突然眼睛一亮,想到了,模加法,这就是个以MOD的群,这道题就变成了,初始的A值是什么的情况下,使得子群的模为MOD
是在A和MOD互质的情况下,这道题就迎刃而解了
下面是代码:
 1 #include < stdio.h >
 2 int  EUCLD( int  a, int  b)
 3 {
 4      if (!b)return a;
 5      else  return EUCLD(b,a%b);
 6 }
 7 int  main()
 8 {
 9      int  STEP, MOD ,d;
10      while (scanf( " %d%d " , & STEP, & MOD )! = EOF)
11     {
12         d = EUCLD(STEP, MOD );
13         printf( " %10d%10d " ,STEP, MOD );
14          if (d == 1 )printf( "     Good Choice\n\n " );
15          else  printf( "     Bad Choice\n\n " );
16     }
17     return  0 ;
18 }

你可能感兴趣的:(PKU 1597)