Advertisement
Saleh127

UVA 897

Sep 14th, 2020 (edited)
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int t; cin>>t; for(int cs=1;cs<=t;cs++)
  5. #define maX 1000000000
  6. bool marked[1000000000];
  7. void sieve()
  8. {
  9. marked[0]=1;
  10. marked[1]=1;
  11. ll n=100000000;
  12. ll limit=sqrt(n*1.0)+1;
  13. for(ll i=4; i<=n; i+=2)
  14. {
  15. marked[i]=1;
  16. }
  17. for(ll i=3; i<=n; i+=2)
  18. {
  19. if(marked[i]==0)
  20. {
  21. if(i<=limit)
  22. {
  23. for(ll j=i*i; j<=n; j+=(2*i))
  24. {
  25. marked[j]=1;
  26. }
  27. }
  28. }
  29. }
  30. }
  31.  
  32. bool check(ll n)
  33. {
  34. string x=to_string(n),y=x;
  35.  
  36. while(prev_permutation(x.begin(),x.end()))
  37. {
  38. if(marked[stoi(x)]) return 0;
  39. }
  40. while(next_permutation(y.begin(),y.end()))
  41. {
  42. if(marked[stoi(y)]) return 0;
  43. }
  44. return 1;
  45. }
  46.  
  47.  
  48. /*
  49.  
  50. Anagrammatic Primes are 2,3,5,7,11,13,31,17,71,37,73,79,97,113,131,311,199,991,919,337,373,733
  51. eigulaaa check korlei hovee
  52.  
  53. */
  54.  
  55. int main()
  56. {
  57.  
  58.  
  59. sieve();
  60. ll n,c,d,e,f,l,h,i;
  61.  
  62. while(cin>>n && n)
  63. {
  64. c=0;
  65. l=n+1;
  66. f=log10(n);
  67. h=pow(10,f+1);
  68. for(i=l;i<h;i++)
  69. {
  70. if(marked[i]==0)
  71. {
  72. if(check(i))
  73. {
  74. c=i;
  75. break;
  76. }
  77. }
  78. }
  79. cout<<c<<endl;
  80. }
  81.  
  82.  
  83. return 0;
  84. }
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement