Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define N 1000001
- using namespace std;
- int PRIM[N],ND[N],PROD[N];
- void Ciur()
- {
- for(int i=1;i<N;++i)
- PROD[i]=1;
- int j;
- for(int i=2;i<N;++i)
- if(PRIM[i]==0)
- {
- PRIM[i]=1,ND[i]=1,PROD[i]*=i,j=i+i;
- while(j<N)
- PRIM[j]=1,++ND[j],PROD[j]*=i,j=j+i;
- }
- }
- int main()
- {
- Ciur();
- int n;
- ifstream f("eratostene7.in");
- f>>n;
- int x,k;
- ofstream g("eratostene7.out");
- while(n--)
- f>>x>>k,(1LL*k==ND[x]&&1LL*x==PROD[x])?g<<"DA\n":g<<"NU\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement