Advertisement
rotti321

DouaMii17

Aug 16th, 2017
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <iostream>
  2. #include <bitset>
  3. #include<fstream>
  4. using namespace std;
  5. bitset <500000001> p; ///marchez numerele prime sau puteri de nr prime
  6. bitset<17540> prim;   /// generez primele 2017 numere prime si le marchez cu 0
  7.  
  8. void ciur()
  9. {
  10.     int i;
  11.     long j;
  12.   p[1]=1;   ///caz particular
  13.   ///ciurul lui Eratostene
  14.   for (i = 2; i <= 17539; ++i)
  15.     if (prim[i] == 0) {
  16.         p[i]=1;
  17.         for(j=i+i;j<=17539;j+=i)
  18.            prim[j]=1;
  19.       }
  20.    ///marchez puterile nr prime
  21. for (i = 2; i <= 17539; ++i)
  22.     if(prim[i]==0)
  23.       {  j=i*i;
  24.          while(j<=500000000)
  25.          {
  26.              p[j]=1;
  27.              if(1LL*j*i<=500000000)
  28.                 j*=i;
  29.              else j=500000001;
  30.          }
  31.       }
  32. }
  33. int main()
  34. {
  35.     ifstream fin("douamii17.in");
  36.     ofstream fout("douamii17.out");
  37.     int n,x,i;
  38.  
  39.     ciur();  ///generez ciurul lui Eratostene pana la al 2017-lea nr prim
  40.                 /// + puterile nr. prime pana la 500.000.000
  41.     fin>>n;
  42.     for(int i=0; i<n; i++)
  43.     {
  44.         fin>>x;
  45.         fout<<p[x]<<'\n';
  46.     }
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement