Guest User

Untitled

a guest
Dec 10th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. #include<cstdio>
  2. #include<bitset>
  3. #include <cmath>
  4. #define BM 1000005
  5. using namespace std;
  6. int pr[BM],dim;
  7. bitset <BM> a;
  8. void ciur(){
  9. long long i,j;
  10. for(i=2;i<=BM-5;++i)if(a[i]==0)for(j=i*i;j<=BM-5;j+=i)a[j]=1;
  11. a[1]=1;
  12. for(i=2;i<=BM-5;++i)if(a[i]==0)pr[++dim]=i;
  13. }
  14. int desc(int x){
  15. int i;
  16. for(i=1;i<=dim&&pr[i]*pr[i]<=x;++i)if(x%pr[i]==0&&x!=pr[i]){
  17. return 0;
  18. }
  19. return 1;
  20. }
  21. int main () {
  22. int n,i;
  23. long long nr;
  24. scanf("%d",&n);
  25. ciur();
  26. for(i=1;i<=n;++i){
  27. scanf("%I64d",&nr);
  28. double rad=sqrt((double)(nr));
  29. int aprox=rad;
  30. if(rad!=aprox||nr==1)printf("NO\n");
  31. else{
  32. if(desc(aprox))printf("YES\n");
  33. else printf("NO\n");
  34. }
  35. }
  36. return 0;
  37. }
Add Comment
Please, Sign In to add comment