标签:view 记录 using 操作 color 直接 class 原理 click
1.素数定理: π(x)~x/ln(x)
其中π(x)是不超过x的范围中素数的个数,当x非常大时,π(x)与x/ln(x)比较接近。
2.埃拉托色尼筛法
应用:可以快速找到[2, n]内所有的素数。操作步骤如下:
(1)输出最小的素数2,然后筛掉2的倍数
(2)输出最小的素数3,然后筛掉3的倍数
(3)输出最小的素数5,然后筛掉5的倍数
继续以上步骤,直到操作到n
例题:hdu 2710
#include <iostream> #include <string.h> using namespace std; const int N=2e4+5; int nprime[N],cnt=0; void table(){ nprime[1]=1; for(int i=2;i<N;i++){ if(!nprime[i]){//直接记录i的最大素因子 nprime[i]=i; for(int j=i+i;j<N;j+=i) nprime[j]=i; } } } int main(){ table(); int t; while(cin>>t){ int maxx=0,ans; while(t--){ int n; cin>>n; if(nprime[n]>maxx)maxx=nprime[n],ans=n; } cout<<ans<<endl; } }
3.算术基本定理
(1)若n的标准素因子分解表达式为n=p1a1*p2a2*...*pkak,设d(n)为n的正因子个数,f(n)为n的所有因子之和,则有
d(n)=(a1+1)*(a2+1)*...*(ak+1)
f(n)=(p1a1+1-1/p1-1)*(p2a2+1-1/p2-1)*..*(pkak+1-1/pk-1)
(2)n!的素因子分解中的素数p的幂为[n/p]+[n/p2]+[n/p3]+...
4.梅森素数
定义:Mp=2p-1,当p为素数,且Mp为素数,则称Mp为梅森素数
当p为第几个素数,则称Mp为第几个梅森数
判定:
设p是素数,第p个梅森数为Mp为2p-1,r1 = 4,对于k >= 2
r(k) = r(k-1)^2-2(modM(p)), 0 <= r(k) <= M(p)
可以得到r(k)序列,则有M(p)是素数,当且仅当r(p-1) = 0(mod M(p))
涉及知识:
卢卡斯-莱默检验法原理
标签:view 记录 using 操作 color 直接 class 原理 click
原文地址:https://www.cnblogs.com/xyfs99/p/11552354.html