import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); br.close(); if (n == 1) { System.out.println(0); return; } List sosuu = sosuuList(n); int ans = 1; for (int i = 1; i < sosuu.size(); i++) { int x = sosuu.get(i) + 2; Map soinsu = bunkai(x); if (soinsu.size() == 1) { for (Integer o : soinsu.keySet()) { if (soinsu.get(o) == 2) { ans += 2; } } } } System.out.println(ans); } static List sosuuList(int n) { List sosuu = new ArrayList(); for (int i = 2; i <= n; i++) { int r = (int) Math.sqrt(i); boolean flg = false; for (Integer o : sosuu) { if (r < o) { break; } if (i % o == 0) { flg = true; break; } } if (!flg) { sosuu.add(i); } } return sosuu; } static Map bunkai(int n) { Map soinsu = new HashMap(); int end = (int) Math.sqrt(n); int d = 2; while (n > 1) { if (n % d == 0) { n /= d; if (soinsu.containsKey(d)) { soinsu.put(d, soinsu.get(d) + 1); } else { soinsu.put(d, 1); } end = (int) Math.sqrt(n); } else { if (d > end) { d = n - 1; } d++; } } return soinsu; } }