import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
	public static void main(String[] args) {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		int ipt=0;
		int pkz=0;
		boolean isp=true;
		try {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

		catch(NumberFormatException e) {
			System.exit(0);
		}

		catch(NullPointerException e) {
			System.exit(0);
		}

	}

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main{
	public static void main(String[] args) {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		int ipt=0;
		int pkz=0;
		boolean isp=true;
		try {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

		catch(NumberFormatException e) {
			System.exit(0);
		}

		catch(NullPointerException e) {
			System.exit(0);
		}

	}

} Main public static void main(String[] args) {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		int ipt=0;
		int pkz=0;
		boolean isp=true;
		try {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

		catch(NumberFormatException e) {
			System.exit(0);
		}

		catch(NullPointerException e) {
			System.exit(0);
		}

	} main {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		int ipt=0;
		int pkz=0;
		boolean isp=true;
		try {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

		catch(NumberFormatException e) {
			System.exit(0);
		}

		catch(NullPointerException e) {
			System.exit(0);
		}

	} BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in)); bfr new BufferedReader(new InputStreamReader(System.in)) String str=""; str "" int ipt=0; ipt 0 int pkz=0; pkz 0 boolean isp=true; isp true try {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

		catch(NumberFormatException e) {
			System.exit(0);
		}

		catch(NullPointerException e) {
			System.exit(0);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} IOException e {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e catch(NumberFormatException e) {
			System.exit(0);
		} NumberFormatException e {
			System.exit(0);
		} System.exit(0) System.exit System 0 catch(NullPointerException e) {
			System.exit(0);
		} NullPointerException e {
			System.exit(0);
		} System.exit(0) System.exit System 0 {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} str=bfr.readLine() str bfr.readLine() bfr.readLine bfr int kazu=Integer.parseInt(str); kazu Integer.parseInt(str) Integer.parseInt Integer str if(str=="") {
				System.exit(0);
			} str=="" str "" {
				System.exit(0);
			} System.exit(0) System.exit System 0 for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			} int i=0; int i=0; i 0 i<kazu i kazu i++ i++ i {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			} {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			} isp=true isp true str=bfr.readLine() str bfr.readLine() bfr.readLine bfr ipt=Integer.parseInt(str) ipt Integer.parseInt(str) Integer.parseInt Integer str for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				} int j=2; int j=2; j 2 j<(int)Math.sqrt(ipt)+1 j (int)Math.sqrt(ipt)+1 (int)Math.sqrt(ipt) Math.sqrt Math ipt 1 j++ j++ j {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				} {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				} if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					} ipt%j!=0 ipt%j ipt j 0 {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					} if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						} j==(int)Math.sqrt(ipt) && isp==true j==(int)Math.sqrt(ipt) j (int)Math.sqrt(ipt) Math.sqrt Math ipt isp==true isp true {
							isp=true;
						} isp=true isp true {
						isp=false;
						break;
					} isp=false isp false break; if(isp==true) {
					pkz++;
				} isp==true isp true {
					pkz++;
				} pkz++ pkz System.out.println(pkz) System.out.println System.out System System.out pkz String[] args args public class Main{
	public static void main(String[] args) {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		int ipt=0;
		int pkz=0;
		boolean isp=true;
		try {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

		catch(NumberFormatException e) {
			System.exit(0);
		}

		catch(NullPointerException e) {
			System.exit(0);
		}

	}

} public class Main{
	public static void main(String[] args) {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		int ipt=0;
		int pkz=0;
		boolean isp=true;
		try {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

		catch(NumberFormatException e) {
			System.exit(0);
		}

		catch(NullPointerException e) {
			System.exit(0);
		}

	}

} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
	public static void main(String[] args) {

		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		String str="";
		int ipt=0;
		int pkz=0;
		boolean isp=true;
		try {
			str=bfr.readLine();
			int kazu=Integer.parseInt(str);

			if(str=="") {
				System.exit(0);
			}

			for(int i=0; i<kazu; i++) {
				isp=true;
				str=bfr.readLine();
				ipt=Integer.parseInt(str);

				for(int j=2; j<(int)Math.sqrt(ipt)+1; j++) {
					if(ipt%j!=0) {
						// nann mo sen
						if(j==(int)Math.sqrt(ipt) && isp==true) {
							isp=true;
						}
					}
					else {
						isp=false;
						break;
					}
				}
				if(isp==true) {
					pkz++;
				}
			}
			System.out.println(pkz);
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}

		catch(NumberFormatException e) {
			System.exit(0);
		}

		catch(NullPointerException e) {
			System.exit(0);
		}

	}

}
