Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <bitset>
- #include<fstream>
- using namespace std;
- bitset <500000001> p; ///marchez numerele prime sau puteri de nr prime
- bitset<17540> prim; /// generez primele 2017 numere prime si le marchez cu 0
- void ciur()
- {
- int i;
- long j;
- p[1]=1; ///caz particular
- ///ciurul lui Eratostene
- for (i = 2; i <= 17539; ++i)
- if (prim[i] == 0) {
- p[i]=1;
- for(j=i+i;j<=17539;j+=i)
- prim[j]=1;
- }
- ///marchez puterile nr prime
- for (i = 2; i <= 17539; ++i)
- if(prim[i]==0)
- { j=i*i;
- while(j<=500000000)
- {
- p[j]=1;
- if(1LL*j*i<=500000000)
- j*=i;
- else j=500000001;
- }
- }
- }
- int main()
- {
- ifstream fin("douamii17.in");
- ofstream fout("douamii17.out");
- int n,x,i;
- ciur(); ///generez ciurul lui Eratostene pana la al 2017-lea nr prim
- /// + puterile nr. prime pana la 500.000.000
- fin>>n;
- for(int i=0; i<n; i++)
- {
- fin>>x;
- fout<<p[x]<<'\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement