标签:
一个数,他是素数么?
设他为P满足(P<=263-1)
P
Yes|No
2
Yes
算法导论——数论那一节
注意Carmichael Number
#include<cstdio> #include<iostream> using namespace std; #define ll long long ll n; int prime[]={2,3,5,7,11,13,17,19,23,29}; ll cheng(ll a,ll b){/*慢速乘法*/ ll ans=0; for(ll i=a;i;i>>=1){ if(i&1) ans=(ans+b)%n; b=(b+b)%n; } return ans%n; } ll mull(ll a,ll b){/*快速幂 */ ll ans=1; for(ll i=a;i;i>>=1){ if(i&1) ans=cheng(ans,b)%n; b=cheng(b,b)%n; } return ans%n; } bool check(){ if(n==2) return 1; if(n<2||n&1==0) return 0; for(int i=0;i<10;i++){/*费马定理+验证法*/ if(mull(n-1,prime[i])!=1) return 0; } return 1; } int main(){ cin>>n; if(check()) puts("Yes"); else puts("No"); return 0; }
标签:
原文地址:http://www.cnblogs.com/shenben/p/5658391.html