Advertisement
Guest User

482

a guest
Nov 8th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. #define mod 1000000007
  4. int mul(int x,int y){
  5.     return (int)((long long int)x*y%mod);
  6. }
  7.  
  8. #define MAX 7368788
  9. #define SQMAX 2715
  10. bool f[MAX];
  11. int p[555555],lp;
  12. void init(){
  13.     for(int i=2; i<MAX; i++){
  14.         if(!f[i]){
  15.             p[lp++]=i;
  16.         }
  17.         for(int j=0; j<lp; j++){
  18.             int t=i*p[j];
  19.             if(t>=MAX)break;
  20.             f[t]=true;
  21.             if(i%p[j]==0)break;
  22.         }
  23.     }
  24. }
  25.  
  26. int q[SQMAX],lq;
  27. int main(){
  28.     init();
  29.     int res = 1, pp = 0, pq = 0,n;
  30.     for(scanf("%d",&n); n--;){
  31.         int x;
  32.         if(pq == lq || p[pp] < q[pq])
  33.             x = p[pp++];
  34.         else
  35.             x = q[pq++];
  36.         res = mul(res, x);
  37.         if(x < SQMAX)q[lq++] = x*x;
  38.     }
  39.     printf("%d\n",res);
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement