package main import ( "bufio" "fmt" "os" "strconv" ) func getPrime(n, k int) { p := make([]bool, n+1) // false: 素数の可能性有 true: notPrime m := make([]int, n+1) ans := 0 for i := 2; i <= n; i++ { if !p[i] { for j := i; j <= n; j += i { p[j] = true m[j]++ } } if m[i] >= k { ans++ } } fmt.Println(ans) return } func main() { N := nextInt() K := nextInt() getPrime(N, K) } var s = bufio.NewScanner(os.Stdin) func next() string { s.Split(bufio.ScanWords) s.Scan() return s.Text() } func nextInt() int { i, e := strconv.Atoi(next()) if e != nil { panic(e) } return int(i) }