(数学原理优化)题解 | 判断质数
判断质数
https://www.nowcoder.com/practice/9f418ff48b5e4e879f398352bed6118d
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); long n = in.nextLong(); if (isPrime(n)) { System.out.println("Yes"); } else { System.out.println("No"); } } private static boolean isPrime(long n) { if (n <= 1) return false; if (n <= 3) return true; if (n % 2 == 0 || n % 3 == 0) return false; // 从5开始,步长为6(检查6k±1的形式) // 数学原理:所有大于3的质数都可以表示为6k±1的形式 for (long i = 5; i * i <= n; i += 6) { if (n % i == 0 || n % (i + 2) == 0) { return false; } } return true; } }