fork(2) download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. vector<long long> div(long long n){
  6. vector<long long> res;
  7. for(long long i=1;i*i<=n;i++){
  8. if(n%i==0){
  9. res.push_back(i);
  10. if(i*i!=n){res.push_back(n/i);}
  11. }
  12. }
  13. sort(res.begin(),res.end());
  14. return res;
  15. }
  16.  
  17. bool isprime(long long n){
  18. for(long long i=2;i*i<=n;i++){
  19. if(n%i==0){return false;}
  20. }
  21. return true;
  22. }
  23.  
  24. bool korselt(vector<long long> p){
  25. sort(p.begin(),p.end());
  26. for(int i=1;i<p.size();i++){
  27. if(p[i-1]==p[i]){return false;}
  28. }
  29. for(int i=0;i<p.size();i++){
  30. long long md=p[i]-1;
  31. long long v=1;
  32. for(int j=0;j<p.size();j++){
  33. v*=p[j]; v%=md;
  34. }
  35. if(v!=1){return false;}
  36. }
  37. return true;
  38. }
  39.  
  40. unsigned long long xor128(){
  41. static unsigned long long x=123456789,y=362436069,z=521288629,w=88675123;
  42. unsigned long long t;
  43. t=(x^(x<<11));x=y;y=z;z=w; return( w=(w^(w>>19))^(t^(t>>8)) );
  44. }
  45.  
  46. int main(){
  47. long long lef=10000000;
  48. long long rig=100000000;
  49. vector<long long> d=div(1081080);
  50.  
  51. // long long mx=0,ml=0;
  52. // for(long long l=1;l<=50000;l++){
  53. // if(l%1000==0){cout << ".";}
  54. // long long c=0;
  55. // for(auto &nx : d){
  56. // long long v=nx*l+1;
  57. // if(lef<=v && v<rig && isprime(v)){c++;}
  58. // }
  59. // if(mx<c){
  60. // mx=c;
  61. // ml=l;
  62. // }
  63. // }
  64. // cout << mx << " " << ml << "\n";
  65.  
  66. long long l=13668;
  67.  
  68. vector<long long> p;
  69. for(auto &nx : d){
  70. long long v=nx*l+1;
  71. if(lef<=v && v<rig && isprime(v)){p.push_back(v);}
  72. }
  73.  
  74. for(long long tr=0;;tr++){
  75. vector<long long> cur;
  76. for(long long i=p.size()-1;i>=p.size()-11;i--){
  77. long long tg=xor128()%(i+1);
  78. swap(p[tg],p[i]);
  79. cur.push_back(p[i]);
  80. }
  81. if(korselt(cur)){
  82. sort(cur.begin(),cur.end());
  83. for(long long i=0;i<cur.size();i++){
  84. if(i){cout << " ";}
  85. cout << cur[i];
  86. }
  87. cout << "\n";
  88. return 0;
  89. }
  90. }
  91.  
  92. return 0;
  93. }
  94.  
Success #stdin #stdout 0.07s 5276KB
stdin
Standard input is empty
stdout
10661041 10825057 11481121 12629233 13681669 18041761 27363337 29317861 29850913 37313641 82090009