struct Primes{
static const int N = ;
int v[N],prime[N],m;
void primes( int n ){
memset( v,0,sizeof( v ) );
m = 0;
for( int i = 2;i <= n;i++ ){
if( v[i] == 0 ){
v[i] = i;
prime[++m] = i; // prime[i] == i 代表i为质数
//num[i] = m;
}
for( int j = 1;j <= m;j++ ){
if( prime[j] > v[i] || prime[j] > n / i ) break;
v[ i * prime[j] ] = prime[j];
}
}
}
}p;