diff options
author | tomsmeding <tom.smeding@gmail.com> | 2016-10-05 09:53:50 +0200 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2016-10-05 09:53:50 +0200 |
commit | 62dab77c1769c398dfb3f0a6968e35f63869e7e5 (patch) | |
tree | 24fda15bf16fea12cb3ea248924a95e5e9aef2d1 /main.cpp | |
parent | 0b7499f8775e728c4a349933a95fe450c082a338 (diff) |
Fix Baillie-PSW!
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
@@ -144,21 +144,19 @@ void performrsa(){ cout<<"msg = "<<msg2<<endl; } -void fermatpseudo(){ - fillsmallprimes(); - for(int i=2;i<65000;i++){ - if(!strongPseudoPrime2(Bigint(i)))continue; - if(!binary_search(smallprimes.begin(),smallprimes.end(),i))cout<<i<<' '; - } - cout<<endl; -} - -void lucaspseudo(){ +void pseudolist(bool(*func)(const Bigint&)){ fillsmallprimes(); for(int i=2;i<65000;i++){ // cerr<<"TRYING "<<i<<endl; - if(!strongLucasPrime(Bigint(i)))continue; - if(!binary_search(smallprimes.begin(),smallprimes.end(),i))cout<<i<<' '; + bool actualprime=binary_search(smallprimes.begin(),smallprimes.end(),i); + if(!func(Bigint(i))){ + if(actualprime){ + cerr<<"Test misleadingly said that "<<i<<" isn't prime, while it is!"<<endl; + exit(1); + } + continue; + } + if(!actualprime)cout<<i<<' '; } cout<<endl; } @@ -171,7 +169,8 @@ int main(int argc,char **argv){ // performrsa(); // testisqrt(argc,argv); // randprime(Bigint(20),Bigint(42)); - // fermatpseudo(); // strongLucasPrime(Bigint(5)); - lucaspseudo(); + // cout<<strongLucasPrime(Bigint(5777))<<endl; + // pseudolist(strongPseudoPrime2); + pseudolist(strongLucasPrime); } |