#include #include #include #define rep(i,n) for(i=0;i<(int)(n);i++) using namespace std; typedef long long ll; typedef unsigned long long ull; int n,k; vector erato(const int MAX_X){ int i,j; vector prime; vector isPrime(MAX_X+1,true); isPrime[0]=isPrime[1]=false; for(i=2;i<=MAX_X;i++){ if(isPrime[i]){ j=2*i; prime.push_back(i); while(j<=MAX_X){ isPrime[j]=false; j+=i; } } } return prime; } int main(){ int i,j; scanf("%d%d",&n,&k); vector prime=erato(n),cnt_prime(n+1,0); rep(i,prime.size()){ j=prime[i]; while(j<=n){ cnt_prime[j]++; j+=prime[i]; } } j=0; rep(i,n+1)j+=cnt_prime[i]>=k; printf("%d\n",j); return 0; }