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; } }