#include int memo[2123456]; bool isprime[2123456]; void init() { for(int i = 0; i < 2123456; ++i) { isprime[i] = true; } isprime[0] = isprime[1] = false; for(int i = 2; i * i < 2123456; ++i) { if( not isprime[i] ) continue; for(int j = i * i; j < 2123456; j+=i) { isprime[j] = false; } } } int main() { init(); int n, k; scanf("%d", &n); scanf("%d", &k); for(int i = 2; i <= n; ++i) { if( isprime[i] ) { for(int j = i; j <= n; j+=i) { memo[j] += 1; } } } int res = 0; for(int i = 2; i <= n; ++i) { if( memo[i] >= k ) res += 1; } printf("%d\n", res); return 0; }