素数相关算法(一)

原创 2004年07月09日 23:13:00

最近在网上看了不少关于素数的问题,也学习到了不少东西,决定整理一下,算是一个学习的总结吧。

首先想说明的是,虽然素数可以进行很深入的研究(如在RSA公共密钥系统的应用),但是由于我对数论的不甚熟悉,所以只能做一些浅尝辄止的探讨,主要就是对一些简单的素数相关算法进行一个讨论。

首先来说说素数的判定算法,如果你是读谭浩强老师的《c程序设计》入门的话,那么一谈到素数的判定算法,你首先应该想到的就是以下的算法:给定一个正整数n,用2到sqrt(n)之间的所有整数去除n,如果可以整除,则n不是素数,如果不可以整除,则n就是素数。这个算法的时间复杂度十分明了,为O(sqrt(n)),算法的描述相当简单,实现也一样不困难。

# include <stdio.h>
# include <math.h>

int isPrime(int n)
{
    int i ;
 
    for(i=2; i <= sqrt(n); i++){
        if(n%i == 0 )
            break ;
    }

    if(i <= sqrt(n))
        printf("%d is not a prime ! ", &n) ;
    else
        printf("%d is a prime ! ", &n) ;
 
    return 0 ;
}
 

大素数测试的Miller-Rabin算法

Miller-Rabin算法本质上是一种概率算法,存在误判的可能性,但是出错的概率非常小。存在严格的理论推导。 费尔马小定理 如果pp是质数且(a,p)=1(a,p)=1,则有ap−1≡1(...
  • u012061345
  • u012061345
  • 2015年09月08日 15:50
  • 1502

密码学—如何随机生成大素数以及Miller Rabin素性检测方法

素数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找质数的过程(...
  • qq_35116353
  • qq_35116353
  • 2017年05月01日 23:07
  • 2778

[算法]猫扑素数的算法实现

猫扑素数的定义所谓猫扑数: 指以2开头,后面跟任意个3的十进制数。如:2、23、233等。 素数是指: 在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为素(质)数。 因此,猫...
  • u011386455
  • u011386455
  • 2017年07月08日 00:01
  • 555

素数算法的优化之路

素数算法的优化之路
  • s634772208
  • s634772208
  • 2015年06月02日 12:49
  • 1243

循环素数 Python

Python
  • Remilitarize
  • Remilitarize
  • 2017年03月29日 14:34
  • 396

米勒拉宾大素数生成算法

package password;import java.math.BigInteger;public class BigPrime { public BigInteger p; st...
  • baidu_15113429
  • baidu_15113429
  • 2016年10月06日 16:52
  • 1757

算法-素数相关

素数定义: 整数p不等于0,正负1,正负p,且除了正负1,正负p外没有其他约数,那么称整数p为质数或者素数.如果不做特别说明,素数或质数指的是正整数中的质数或者素数. 问题1:判断一个数是否...
  • mydream20130314
  • mydream20130314
  • 2014年12月22日 13:39
  • 329

素数的相关算法

判断一个数是否为素数和 判断101-200之间有多少个素数,并输出所有素数。
  • sunrainamazing
  • sunrainamazing
  • 2017年01月19日 14:24
  • 132

素数相关算法(二)

素数算法(二) 上次讨论了简单的素数判定的算法,不过这个算法对于位数较大(一般小于108)的素数判定就显得相当力不从心了。比如在素数目前最广泛的应用领域-公共密钥体系中,一般选择的素数都是相当大的(通...
  • hihihaha
  • hihihaha
  • 2004年07月11日 12:06
  • 2531

Miller-Rabin概率素数测试算法

本文首先鸣谢以下资料文章: 资料1 资料2 资料3 下面我们开始正文,从源头开始真正的梳理一下素数测试1.素数我们都知道,素数在当今的数论中占有非常重要的地位,主要原因就是素数最根本的性质——...
  • ltyqljhwcm
  • ltyqljhwcm
  • 2016年11月05日 16:37
  • 1635
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:素数相关算法(一)
举报原因:
原因补充:

(最多只允许输入30个字)