Advertisement
sajid161

Class - 26 : Task - 2

Jan 18th, 2025
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int mx=1e7+123;
  4. bool is_prime[mx];
  5. int sum[mx];
  6. int cum_sum[mx];
  7. void cal_prime(int n)
  8. {
  9.     for(int i=3;i<=n;i+=2) is_prime[i]=1;
  10.     is_prime[2]=1;
  11.     for(int i=3;i*i<=n;i+=2)
  12.     {
  13.         if(is_prime[i]==1)
  14.         {
  15.             for(int j=i*i;j<=n;j+=(i+i)) is_prime[j]=0;
  16.         }
  17.     }
  18.  
  19. }
  20.  
  21. void sum_cal()
  22. {
  23.     for(int x=1;x<=3200;x++)
  24.     {
  25.         for(int y=1;y<=60;y++)
  26.         {
  27.              int p=(x*x)+(y*y*y*y);
  28.              if(p>1e7) continue;
  29.             if(is_prime[p]==1) sum[p]=1;
  30.         }
  31.     }
  32. }
  33. void cu_sum()
  34. {
  35.     cum_sum[1]=sum[1];
  36.     for(int i=2;i<=1e7;i++)
  37.     {
  38.         cum_sum[i]=cum_sum[i-1]+sum[i];
  39.     }
  40. }
  41. int main()
  42. {
  43.     cal_prime(1e7);
  44.     for(int i=1;i<=1e7;i++) sum[i]=0;
  45.     sum_cal();
  46.     cu_sum();
  47.     int t;
  48.     cin>>t;
  49.     while(t--)
  50.     {
  51.         int n;
  52.         cin>>n;
  53.         cout<<cum_sum[n]<<endl;
  54.     }
  55.  
  56. }
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement