题目1085:求root(N, k)

来源:互联网 发布:淘宝客服与买家对话 编辑:程序博客网 时间:2024/05/21 10:28

    #include <stdio.h>              long long root (long long x, long long y, long long k){          long long ans = 1;                  while (y != 0){              if ((y & 1) == 1)                  ans = (ans * x) % k;              x = (x * x) % k;              y = y >> 1;          }          return ans;      }              int main(void){          long long x, y, k;          long long ans;                  while (scanf ("%lld %lld %lld", &x, &y, &k) != EOF){              ans = root (x, y, k-1);              if (ans == 0)                  ans = k-1;              printf ("%lld\n", ans);          }                  return 0;      }  /**************************************************************    Problem: 1085    User: cust123    Language: C++    Result: Accepted    Time:10 ms    Memory:1020 kb****************************************************************/


0 0
原创粉丝点击