质数的一些性质

1.当N>3时,N和N+1中必然有一个数不是质数。
2.质数有无穷多个
证明:质数有有穷个。假设为N个,p1,p2,p3……pn
存在一个数,其为(p1p2p3p4……pn)+1 除以任何质数都不能整除。与之前的N个质数矛盾。
3.存在任意连续的N个数均为合数。(第二种表述方式:相邻素数之间的间隔任意大。)
证明:令a=(n+1)! 那么(a+1)% 1 = 0,(a+2)% 2 = 0,……(a+n+1)% (n+1) = 0,这之间一共有n个合数。
4.N以内的素数个数随着N增大趋近于logN
5.从不大于N的自然数中随机挑选一个数,它是素数的概率为1/n
6.随着n增大,素数越来越稀疏(整体以上)。
7.区间(a,2a]间至少有一个素数
8.孪生素数猜想:N和N+2都为素数的情况有很多个(3和5,5和7,11和13)
9.哥德巴赫猜想
10.给一个素数,怎么判定?

  • 枚举2-之间所有的数,看能否整除。
  • 素数筛法:找见一个素数,把它的倍数全部去掉(缺陷:有的数字可能会被筛多次)
    11.素数筛优化:
  • 对于一个合数,可以把它写成ab的形式(a为质数,而b有可能为质数也有可能为合数)
    若a>b,这样,a
    b在之前就已经被b或b的质因子以倍数的形式筛掉了。因此从a开始筛倍数的时候,直接从aa开始筛即可。
    (eg:要筛11的倍数,不用筛22,33……直接从11
    11=121开始筛即可)
  • 确保每一个合数只由一个质数被筛掉(例如:对于30,215,310,56均可以筛掉他,那么选用哪一种方式呢?)
    解决方法:用数组v记录每个数是被哪个质数筛掉的
    依次考虑2-N的每一个数 如果v[i] = i ,即i是质数本身,那么就把他存下来。
    扫描所有小于等于v[i]的质数,令v[i
    p]=p,在i上累计一个质因子。(p<=v[i],则p是ip的最小质因子。)
    举例:对于5这个数,比他小的质数有:3,2那么,就把v[5
    3]标记为3,v[5*2]标记为2
posted @ 2024-11-14 21:09  TheMelonStar  阅读(554)  评论(0)    收藏  举报