/*
  テァツエツ?ヲツ閉ーテ・ツ按、テ・ツョツ堙・ツ閉湘ゥツ。ツ古」ツ??
  テ」ツ?ィテ」ツつ甘」ツ?づ」ツ?暗」ツ?堙」ツつィテ」ツδゥテ」ツδ暗」ツつケテ」ツδ?」ツδ催」ツつケテ」ツ?ョテ」ツ?オテ」ツつ凝」ツ??」ツつ津・ツ按ゥテァツ板ィテ」ツ??
  n テ」ツ??00,000 テ」ツつ津ィツカツ?」ツ?暗」ツつ凝」ツつ暗」ツ??」ツ?ェテ」ツつ嘉」ツつィテ」ツδゥテ」ツδ暗」ツつケテ」ツδ?」ツδ催」ツつケテヲツ篠ィテ・ツ・ツィテ」ツ??
  テ、ツサツ甘・ツ崢榲」ツ?ョnテ」ツ?ッ123456テ」ツ?セテ」ツ?ァテ」ツ??ヲツ敖。テ、ツサツカテ」ツ?凝」ツつ嘉ァツエツ?ヲツ閉ーテ・ツ按、テ・ツョツ堙」ツ?古・ツソツ?ィツヲツ?」ツ?ェテヲツ慊?・ツ、ツァテ」ツ?ョテヲツ閉ーテ」ツ?ッ246912テ」ツ??
*/

import java.util.*;
public class Main{
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args){
	boolean[] primeN = new boolean[1000000];
	setP(primeN);  // テァツエツ?ヲツ閉ーテゥツ?催・ツ按療」ツ?ョテヲツコツ姪・ツつ?
	while(sc.hasNext()){
	    int n = sc.nextInt();
	    if(n!=0)  solve(primeN, n);
	}
    }

    static void solve(boolean[] primeN, int n){
	int i, count=0;
	for(i=n+1; i<=n*2; i++)    // n< i <= n*2テ」ツ??」ツ?ァテ」ツ?ョテァツエツ?ヲツ閉ーテ」ツ?ョテヲツ閉ーテ」ツつ津ヲツ閉ーテ」ツ?暗」ツつ凝」ツ??
	    if(primeN[i]) count++;
	System.out.println(count);
    }

    /* テ」ツつィテ」ツδゥテ」ツδ暗」ツつケテ」ツδ?」ツδ催」ツつケテ」ツ?ョテァツッツゥテ」ツδ。テ」ツつステ」ツδε」ツδ?
       テ・ツ?ィテ」ツ?ヲテ」ツ?ョテヲツ閉ーテ」ツつ津ァツエツ?ヲツ閉ーテ」ツ?ィテ、ツサツョテ・ツョツ堙」ツ?療」ツ?ヲテ」ツ?凝」ツつ嘉」ツ??テ」ツ?ィ1テ」ツつ津ゥツ卍、テ・ツ、ツ姪」ツ??
       2テ、ツサツ・テゥツ卍催」ツ?ョテヲツ閉ーテ」ツ?ォテ」ツ?、テ」ツ??」ツ?ヲテ」ツ??ァツエツ?ヲツ閉ー(=true)テ」ツ?ョテ」ツ?セテ」ツ?セテ」ツ?ェテ」ツつ嘉」ツ?ーテ」ツ??」ツ?敕」ツ?ョテヲツ閉ーテ」ツ?ョテ・ツ?催ヲツ閉ーテ」ツつ津・ツ?ィテ」ツ?ヲテァツエツ?ヲツ閉ーテ」ツ?ァテ」ツ?ェテ」ツ??」ツ?ィテ」ツ?凖」ツつ凝」ツ??
       テ・ツ?、テ」ツ?荊rueテ」ツ?ィテ」ツ?療」ツ?ヲテヲツョツ凝」ツ?」テ」ツ?淌」ツつづ」ツ?ョテ」ツ?古ァツエツ?ヲツ閉ーテ」ツ??
     */
    static void setP(boolean[] primeN){
	Arrays.fill(primeN, true);  
	primeN[0] = false;         
	primeN[1] = false;
	for(int i=2; i<primeN.length; i++){
	    if(primeN[i]){ // i=4テ」ツ?ョテヲツ卍づ」ツ?ェテ」ツ?ゥテ」ツ?ョテァツ?。テゥツァツ?」ツ?ェテ」ツδォテ」ツδシテ」ツδ療」ツつ津ゥツ伉イテ」ツ??
		for(int j=i+i; j<primeN.length; j+=i){
		    primeN[j] = false;
		}
	    }
	}
    }
}

/* 
  テ」ツδ?」ツδシテ」ツつソテ」ツつ津・ツ?ィテ」ツ?ヲティツェツュテ」ツ?ソティツセツシテ」ツつ禿」ツ?ァテ」ツ?凝」ツつ嘉ァツュツ氾」ツ?暗」ツつ津ィツソツ氾・ツ債エテ」ツ?凖」ツつ凝」ツつソテ」ツつ、テ」ツδ療」ツ??
  テァツエツ?ヲツ閉ーテ・ツ按、テ・ツョツ堙」ツ?ッテ「ツ按嗜 テ、ツサツ・テ、ツクツ凝」ツ?ァテ」ツ?氾」ツつ甘ヲツ環シテ」ツ?療」ツ??
  テ・ツ可イテ」ツ?ィテヲツ卍づゥツ鳴禿」ツ?古」ツ?凝」ツ?凝」ツつ凝」ツ?ョテ」ツ?ァテ」ツ?ゝimeLimitテ」ツ?古・ツーツ妥」ツ?ェテ」ツ??・ツ?エテ・ツ青暗」ツ?ォテ」ツ?ッティツヲツ?ヲツウツィテヲツ?湘」ツ??
  テ」ツ?禿」ツ?ョテ・ツ閉湘ゥツ。ツ古」ツ?ッテヲツ卍づゥツ鳴禿」ツ?ォテ、ツスツ凖ィツ」ツ陛」ツ?古」ツ?づ」ツつ凝」ツ?淌」ツつ?」ツ??」ツ?氾」ツつ甘ヲツ環シテ」ツ?療・ツ楪凝」ツ?ァテ」ツつづゥツ?堙」ツつ凝」ツ??
 */
/*
  import java.util.Scanner;
  public class Main1172 {
     public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
     int i = 0;
     int[] read = new int[123456];  // テ」ツδ?」ツδシテ」ツつソティツェツュテ」ツ?ソティツセツシテ」ツ?ソテァツ板ィテゥツ?催・ツ按?
     // テ」ツδ?」ツδシテ」ツつソティツェツュテ」ツ?ソティツセツシテ」ツ?ソテ」ツ?禿」ツ?禿」ツ?凝」ツつ?
     while(sc.hasNext()) {
        read[i] = sc.nextInt();
        i++;
     }
     // ティツァツ」テァツュツ氾」ツ?禿」ツ?禿」ツ?凝」ツつ嘉」ツ?〉ead[i]=テ、ツサツ甘ィツァツ」テァツュツ氾、ツクツュテ」ツ?ョ n
     i = 0;
     while(read[i] != 0) {
        System.out.println(Pcount(read[i]));
        i++;
     }
  }


  //テ、ツクツ偲」ツ?暗」ツつ嘉」ツつ古」ツ?淌ヲツ閉エテヲツ閉ーテ」ツ?ォテ・ツッツセテ」ツ?療」ツ?ヲテ」ツ?］ < x <= 2*n テ」ツ?ョテァツエツ?ヲツ閉ーテ」ツつ津ヲツ篠「テ」ツ?療・ツ?凝ヲツ閉ーテ」ツつ津ヲツ閉ーテ」ツ?暗ィツソツ氾・ツ債エテ」ツ?凖」ツつ?
  static int Pcount(int a) {
     int count = 0;
     for(int i = (a+1); i <= 2*a; i++) {
        if(isPrime(i)) count++;          //テァツエツ?ヲツ閉ーテ」ツ?ェテ」ツつ嘉」ツ?ーテ」ツつォテ」ツつヲテ」ツδウテ」ツδ暗」ツ?古・ツ「ツ療」ツ?暗」ツつ?
     }
     return count;	
  }

  //テ」ツ?づ」ツつ凝ヲツ閉ーテ」ツ?古ァツエツ?ヲツ閉ーテ」ツ?凝」ツ?ゥテ」ツ??」ツ?凝・ツ按、テ・ツョツ堙」ツ?凖」ツつ?
  // 
  static boolean isPrime(int n) {
     int f = (int)Math.sqrt(n);
     while((n % f)  > 0) f--;  // f = テ「ツ按嗜 テ」ツ?凝」ツつ? nテ」ツつ津・ツ可イテ」ツつ甘・ツ按?」ツつ古」ツつ鞠テ」ツつ津ヲツ篠「テ」ツ??
     return f == 1;            // n==1テ」ツ?ェテ」ツつ嘉」ツ?ーテ」ツ??ァツエツ?ヲツ閉ーテ」ツ?ェテ」ツ?ョテ」ツ?ァtrueテ」ツつ津ィツソツ氾」ツ??
  }
 }
*/

Measured memory_bytes: 23148