📅  最后修改于: 2023-12-03 14:47:53.077000             🧑  作者: Mango
本题是 TCS 编码练习题之一,要求编写一个方法检查一个数是否为质数(素数)。质数是指只能被 1 和它本身整除的正整数,如 2、3、5、7、11 等。本题需要你完成一个名为 isPrime 的方法,该方法接收一个整数参数 n,如果 n 是质数则返回 true,否则返回 false。
首先,我们需要明确质数的定义及相关概念。质数是指除了 1 和它本身外,不能被其它数整除的数。具体而言,整数 n 如果能被除了 1 和它本身之外的其它数整除,则 n 不是质数,否则 n 是质数。
接着,我们需要确定算法及实现方式。常用的判断质数的算法有试除法和埃氏筛法。试除法的思路是在区间 [2, n-1] 中逐个验证 n 能否被整除,如果有能被整除的数,则 n 不是质数;而埃氏筛法则通过遍历区间 [2, n-1] 中的每个数,将它的倍数标记为非质数,最后未被标记的数即为质数。
在实现时,我们可以采用试除法。具体而言,我们从 2 开始到 n 的平方根进行试除,如果 n 能被任意一个数整除,则返回 false;否则,返回 true。
下面是一个基本的 JAVA 代码实现示例:
public static boolean isPrime(int n) {
// special cases
if (n <= 1) {
return false;
}
if (n <= 3) {
return true;
}
// check if n is divisible by 2 or 3
if (n % 2 == 0 || n % 3 == 0) {
return false;
}
// check for all numbers from 5 to sqrt(n)
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
// if none of above cases is true, then n is prime
return true;
}
本文介绍了 TCS 编码练习题之一:检查质数。本题主要考察程序员对质数的定义及判断方法的理解,需要程序员采用合适的算法及实现方式进行解答。在本文中,我们给出了一种基本的 JAVA 代码实现示例,供程序员参考。需要注意的是,质数的判定方法并不唯一,程序员可以采用自己熟悉的方法进行实现。