【密码学】费马小定理素性检测(C++代码实现)
#include <NTL/ZZ.h>
#include<iostream>using namespace std;
using namespace NTL;long PrimeTest(const ZZ& n, long t)
{if (n <= 1) return 0;//用2000以内的素数对n进行初筛PrimeSeq s; // 生成一个素数数列long p;p = s.next(); // first prime is always 2while (p && p < 2000) {if ((n % p) == 0) return (n == p);p = s.next();}//Fermat法推演n的素性ZZ x;for (long i = 0; i < t; i++) {x = RandomBnd(n); // 随机数 between 0 and n-1if ((x,n)==1 && PowerMod(x,n-1,n)!=1)return 0;}return 1;
}int main()
{ZZ n;long t;cout << "请输入Fermat待检测的n: ";cin >> n;cout << "请输入Fermat检测次数t:";cin >> t;if (PrimeTest(n, t))cout << "n是素数\n";elsecout << "n是合数\n";
}
【密码学】费马小定理素性检测(C++代码实现)相关推荐
- 费马小定理 素性判断 蒙哥马利算法
转载于http://blog.csdn.net/arvonzhang/article/details/8564836 1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所 ...
- SICP:费马小定理与素数检测
原帖地址:http://www.nowamagic.net/librarys/veda/detail/2329 费马小定理 关于费马小定理,读到注解的时候,还是有点震撼的. 皮埃尔•得•费马(1601 ...
- 密码学基础——辗转相除法,费马小定理,欧拉定理,裴蜀定理,中国剩余定理
文章主要根据百度百科和维基百科相关相关知识点整理而成! 辗转相除法 辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法.它的具体做法是:用较小数除较大数 ...
- C++实现伪大素数生成算法(费马小定理判别法、米勒拉宾素数判定法)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.伪大素数生成原理 方法一 方法二 数学基础 二.费马小定理判别法 1.算法 2.代码实现 3.运行结果 二.米勒拉宾素数 ...
- c语言中余数恒等于1,费马小定理_KANGMANG201102_新浪博客
费马小定理是数论中的一个重要定理,其内容为: 假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p) 假如p是质数,且a,p互质,那么 a的(p-1)次方除以p的余数恒等于1 费马小 ...
- 判断素数(费马小定理)
1)Sieve of Eratosthenes筛法 由于一个合数总是可以分解成若干个质数的乘积,那么如果把质数(最初只知道2是质数)的倍数都去掉,那么剩下的就是质数了.例如要查找100以内的质数,首先 ...
- 费尔马小定理素数java_费马小定理,我的理解
原标题:费马小定理,我的理解 触碰标题下面一行的"邵勇老师"查看所有文章:触碰"数学教学研究", 关注本微信公众号(sx100sy). 本公众号内容均由邵勇本人 ...
- 欧拉定理 费马小定理
前言 学基础数论的时候看过证明,然而很快就忘了,最近在学习高深一点的数论,于是再复习一下欧拉定理和费马小定理. 欧拉定理 内容 若正整数 \(a,n\) 互质,则 \(a^{\varphi(n)}\e ...
- 「欧拉定理」学习笔记(费马小定理)
欧拉定理:对于互质的两个正整数$a, n$,满足$a^{φ(n)} ≡ 1\ (mod\ n)$ 证明: 设集合$S$包含所有$n$以内与$n$互质的数,共有$φ(n)$个:$$S = \{ x_1 ...
最新文章
- 【冷门实用小工具】JAVA和C#轻量级的UML图绘制工具NClass,UML类图编辑器免安装版【亲测有效】
- 我玩《王者荣耀》、斗地主、打麻将,但我是正经搞AI的北大教授
- MyBatis小问题(1)-Mapper中错误No constructor found...
- 比较常规治疗登记中阿巴西谱、阿达木单抗、依那西普和英夫利昔单抗治疗类风湿关节炎的疗效和起效时间...
- OpenCV SVM支持向量机和KNearest数字识别的实例(附完整代码)
- oracle 10g 白皮书,Oracle 10g标准版与企业版
- 发一个自己写的抓包软件,支持插件化脚本分析
- Tensorflow2.0 tf.function和AutoGraph模式
- php 计算每年春节日期,动态显示2019年农历春节倒计时—2019年1月21日23时45分
- 一、SecureCRT 8.0 客户端连接服务器
- ResultSet转换为List的方法
- 如何搭建个人博客或企业官网
- 2021全国研究生数学建模竞赛D题思路
- vue中下载excel文件4种方法
- CockroachDB改用授权BSL取代Apache 2.0
- 阿里云账号注册及常用产品申请
- java 生成pdf
- 《数据结构》实验报告二:顺序表 链表
- @EnableConfigurationProperties 注解
- 基于矩阵分解的CF算法实现(一):(Funk SVD)LFM