快速模幂运算
来源:互联网 发布:java中类的构造方法 编辑:程序博客网 时间:2024/05/19 13:19
#include <cstdio>/** 挑战程序设计竞赛 p122*/__int64 mod_pow(__int64 x,__int64 n,__int64 mod){ //快速模幂运算 __int64 res = 1; while(n > 0){ if(n & 1){ //如果二进制位最低位为1,则乘上x^(2^i) res = (res * x) % mod; } x = (x * x) % mod; //将x平方 n >>= 1; //n右移一位,相当于n = [n / 2] 取下底 } return res;}bool is_prime(__int64 n){ //素数判定 for(int i = 2; i * i <= n; ++i){ if(!(n % i)) return false; } return n > 1; //排除负数,0,1的可能性}__int64 n;void solve(){ bool flag = true; if(!is_prime(n)){ for(__int64 i = 1; i < n; ++i){ __int64 xn = mod_pow(i, n, n); __int64 x = i % n; if(xn != x){ flag = false; } } } else { flag = false; } if(flag){ printf("Yes\n"); } else { printf("No\n"); }}int main(){ while(scanf("%d", &n) != EOF){ solve(); } return 0;}
0 0
- 快速幂模运算
- 快速模幂运算
- 快速幂之模运算
- 快速取模运算
- 快速幂运算
- 快速幂运算
- 快速幂运算
- 快速幂运算
- 快速幂运算
- [数学]快速幂运算
- 快速幂运算
- 快速幂运算
- 快速幂运算
- 矩阵运算 快速幂
- 快速幂运算
- 快速幂运算 与 快速幂取余
- 快速幂运算的应用
- 置换群快速幂运算
- Hibernate 的工具类,及其注意的事项
- (2) 内连接、外连接
- Sublime Text 全程指南
- 使用Buildozer部署时,出现unknown option‘single-branch’错误的解决
- git ,github的简单使用步骤
- 快速模幂运算
- hibernate的几个重要的接口
- 2015亚洲区域赛沈阳站总结
- Android工具Uitls
- 【知识点整理(java)】Java Thread简单使用注意点汇总(四)
- 递归实现 1+2+3+...100 php和java
- 第四次实验——栈和队列(二)
- Python:使用threading模块实现多线程(转)
- hadoop-client命令使用