Advertisement
Guest User

OFiciala

a guest
Jan 20th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4. ifstream f("primxxl.in");
  5. ofstream g("primxxl.out");
  6. long long n,k,i,j,m,x,prod,nr,ok,ep,v[32002],p[3500],e[3500] ;
  7.  
  8. int main()
  9. {
  10.     f >> n >> k ;
  11.     // numerele prime pana la 32000 si exponentii lor in k!
  12.     v[2]=0 ;
  13.     for(i=2 ; i<=32000 ; i++)
  14.         if(v[i]==0)
  15.     {
  16.         m++ ;
  17.         p[m] = i ;
  18.         e[m] = 0 ;
  19.         prod = i ;
  20.         while ( prod<=k )
  21.         {
  22.             e[m] += k/prod ;
  23.             prod = prod*i ;
  24.         }
  25.         j = i+i ;
  26.         while ( j<=32000 )
  27.         {
  28.             v[j] = 1 ;
  29.             j = j+i ;
  30.         }
  31.     }
  32.     nr = 0 ;
  33.     for ( i=1 ; i<=n ; i++ )
  34.     {
  35.         f >> x ;
  36.         if( x<=k ) nr++ ;
  37.         else
  38.         {
  39.         j = 1 ;
  40.         ok = 1 ;
  41.         while (( p[j]*p[j]<=x )and(ok==1))
  42.         {
  43.             ep = 0 ;
  44.             while( x%p[j]==0 )
  45.             {
  46.                 ep++ ;
  47.                 x = x/p[j] ;
  48.             }
  49.             if( ep>e[j] ) ok=0 ;
  50.             j++ ;
  51.         }
  52.         if ( x>k ) ok=0 ;
  53.         if( ok==1 ) nr++ ;
  54.         }
  55.     }
  56.     g << nr ;
  57.  
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement