最简单的方法是什么,最好没有列表或地图? 我已经尝试将维基百科伪代码转换为实际代码,但我根本不了解新行之后的下半部分。
function is_prime(n : integer)
if n ≤ 1
return false
else if n ≤ 3
return true
else if n mod 2 = 0 or n mod 3 = 0
return false
let i ← 5
while i×i ≤ n
if n mod i = 0 or n mod (i + 2) = 0
return false
i ← i + 6
return true
答案 0 :(得分:1)
首先,这里的函数转换为java:
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
} else if (n <= 3) {
return true;
} else if (n % 2 == 0 || n % 3 == 0) {
return false;
}
int i = 5;
while (i * i <= n) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
i += 6;
}
return true;
}
下半部分是从最低未检查数(5,因为已经检查了2的倍数,如0,1和3)到n
的平方根(任何大于平方根必须乘以小于平方根的东西才能等于n
),检查每个数字i
以查看n
是否可被i
整除。
答案 1 :(得分:0)
试试这段代码
public static boolean isPrime(int n) {
for (int i = 2; i < n - 1; i++) {
if(n%i==0)
return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(isPrime(39));
}