首页 > 其他分享 >Miller_Rabin 学习笔记

Miller_Rabin 学习笔记

时间:2023-08-06 23:46:22浏览次数:35  
标签:平方 int Miller 质数 笔记 pmod Rabin

费马小定理:对于任意一个质数满足:\(a^{p-1}\equiv1\pmod p\)

二次探测:对于任意一个奇质数满足:\(x^2\equiv1\pmod p\) 的解为 \(x=1\) 或 \(x=p-1\)

将两个定理结合起来,设 \(p-1=u\times 2^t\),那么计算出 \(a^u\) 次方后不断进行平方计算,如果某次平方后得到了 1 并且平方的数不为 \(1\) 或 \(p-1\),那么 \(p\) 肯定不是质数。

据说 \(a\) 选取前 13 个质数就行了,也可以使用下面程序给的数字列表。注意特判偶数和小于 3 的情况

int prime(LL n)
{
	if(n<3||n%2==0)
		return n==2;
	LL t=n-1;
	int s=0;
	while(!(t&1))
		t>>=1,s++;
	static const int pr[]={2,325,9375,28178,450775,9780504,1795265022};
	for(int i=0;i<7;i++)
	{
		int x=pr[i];
		LL v=pown(x,t,n);
		if(v==1||!v||v+1==n)
			continue;
		for(int j=1;j<=s;j++)
		{
			v=(LLL)v*v%n;
			if(j^s&&v==n-1)
			{
				v=1;
				break; 
			}
			if(v==1)
				return 0;
		}
		if(v^1)
			return 0;
	}
	return 1;
}
···

标签:平方,int,Miller,质数,笔记,pmod,Rabin
From: https://www.cnblogs.com/mekoszc/p/17610356.html

相关文章

  • k8s 学习笔记之数据存储——基础存储
    在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。Volume是Pod中能够被多个容器访问的共享目录,它被定......
  • 【刷题笔记】7. Reverse Integer
    题目Givena32-bitsignedinteger,reversedigitsofaninteger.Example1:Input:123Output:321Example2:Input:-123Output:-321Example3:Input:120Output:21**Note:**Assumewearedealingwithanenvironmentwhichcouldonlystoreintegerswi......
  • 斜率优化学习笔记
    这是等了好久的笔记了。斜率优化一直是我OI中的一个大坑,我刚接触它的时候是在摆渡车这题,看到斜率凸包啥的,那时候我才是六年级,十分的不理解,于是一直觉得它十分困难。暑假终于迎来了转机,NLFS讲DP优化那天顺便讲了下斜率优化,终于大悟,乃写此文章,供复习等用。先来看一道题:斜......
  • tarjan,点双和边双学习笔记。
    发现之前学的真的一塌糊涂呢(/ω\)很多非常精髓的地方理解的都不够好,比如说为啥我要用一棵dfs树来为框架,跑tarjan?这里我就理解的不好,所以我来重新写一篇,加深加深印象。以下一切默认为无向图。0.基本概念这里面说的非常不严谨,只是为了方便理解啦awa连通分量:你可以简单的......
  • 二次剩余学习笔记
    注意,下面的运算都是在模意义下进行的。给定\(n\),求\(x^2\equivn\)\(x\)存在条件为\(n^{\frac{p-1}2}=1\),证明用费马小定理,略。如何求出\(x\),随机一个不存在二次剩余的值\(a^2-n\),设为\(w^2\)这里可以把\(w\)理解为一个虚数。由于\(w^2\)不存在二次剩余,所以\[w......
  • 【学习笔记】类欧几里得算法
    概述主要是求以下三个式子:\[f(a,b,c,n)=\sum_{i=0}^n\left\lfloor\dfrac{ai+b}{c}\right\rfloor\]\[g(a,b,c,n)=\sum_{i=0}^ni\left\lfloor\dfrac{ai+b}{c}\right\rfloor\]\[h(a,b,c,n)=\sum_{i=0}^n\left\lfloor\dfrac{ai+b}{c}\right\rfloor^2\]求\(f......
  • GAMES101笔记(03)
    前几个月忙着拯救地球所以有比较长时间的空档这次笔记对应的是games101内容的第六课,至于为什么跳过第五课因为第五课我感觉也没啥需要记笔记的,基本就是光栅化的一些基本概念以及最基本的一些实现理念,视频最后讲到了关于锯齿和走样的一些东西,第六课开头即紧接着这部分进行讲解采......
  • Vue学习笔记:路由开发 Part 02
    在上一篇中,默认情况下浏览器控制台会提示 [VueRouterwarn]:Nomatchfoundforlocationwithpath"/"这是因为没有定义path为/的情况导致的。在实际使用中,可以将/通过路由进行绑定,也可以通过重定向,进行跳转。路由重定向为/,通过redirect进行重定向import{createRouter,crea......
  • 「学习笔记」二维数点
    P2163[SHOI2007]园丁的烦恼-洛谷|计算机科学教育新生态(luogu.com.cn)这个是二维数点的板子题,二维数点这一类题目就是上面的题所描述的,我们用树状数组+离散化来解决这个问题。这里就不解释了,记录此篇博文的目的主要就是提醒自己曾经学过这个,看看代码,方便回忆起来。这......
  • Miller Rabin & Pollard Rho
    P4718Miller_Rabin用于检测大数素性($\sqrt{n}\ge1e8$).对于素数$P$,有费马小定理:对于任意$a\in\lbrack1,P),a^{P-1}\equiv1:(mod:P)$枚举$\lbrack1,P)$中的任意$a$,若均满足其逆定理$a^{P-1}\equiv1:(mod:p)$,则$P$大概率......