import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long n = scanner.nextLong();
if (isPrime(n)) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
/**
* 判断一个数是否为质数
* @param n 要判断的数
* @return 如果是质数返回true,否则返回false
*/
private static boolean isPrime(long n) {
// 小于等于1的数不是质数
if (n == 1) {
return false;
}
// 2和3是质数
if (n == 2 || n == 3) {
return true;
}
// 能被2或3整除的数不是质数
if (n % 2 == 0 || n % 3 == 0) {
return false;
}
// 检查从5开始的数,步长为6
// 因为除了2和3,所有质数都可以表示为6k±1的形式
// 上面检查被2和3整除,已经排除了6k, 6k+2, 6k+3, 6k+4的形式
for (long i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
}