Java 判断质数的代码
时间: 2023-12-01 09:04:42 浏览: 175
Sure, here is a sample code for checking if a number is a prime number in Java:
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
Hope this helps! Do you have any more questions for me?
相关问题
java判断质数的代码
在 Java 中,判断一个数是否为质数的基本算法是通过试除法,即检查该数是否能被2到其平方根之间的任何整数整除。下面是一个简单的示例代码:
```java
public class PrimeNumber {
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
// 只需检查到 num 的平方根,因为大于这个数的因子必定有一个小于等于它的平方根
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) { // 如果有余数,则num不是质数
return false;
}
}
return true; // 如果没找到因子,那么num就是质数
}
public static void main(String[] args) {
int number = 17;
System.out.println(number + " is prime? " + isPrime(number));
}
}
```
在这个代码中,`isPrime` 方法接收一个整数作为输入,如果它是质数则返回 `true`,否则返回 `false`。在 `main` 函数中,我们测试了一个例子(这里是17),并打印结果。
java判断素数多种方法代码
以下是Java中判断素数的多种方法:
方法1:暴力枚举法
```
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
```
方法2:优化的暴力枚举法
```
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
if (num == 2 || num == 3) {
return true;
}
if (num % 6 != 1 && num % 6 != 5) {
return false;
}
for (int i = 5; i <= Math.sqrt(num); i += 6) {
if (num % i == 0 || num % (i + 2) == 0) {
return false;
}
}
return true;
}
```
方法3:埃氏筛法
```
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
boolean[] isPrime = new boolean[num + 1];
Arrays.fill(isPrime, true);
isPrime[0] = false;
isPrime[1] = false;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (isPrime[i]) {
for (int j = i * i; j <= num; j += i) {
isPrime[j] = false;
}
}
}
return isPrime[num];
}
```
方法4:线性筛法
```
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
int[] primes = new int[num + 1];
boolean[] isPrime = new boolean[num + 1];
int count = 0;
Arrays.fill(isPrime, true);
isPrime[0] = false;
isPrime[1] = false;
for (int i = 2; i <= num; i++) {
if (isPrime[i]) {
primes[count++] = i;
}
for (int j = 0; j < count && i * primes[j] <= num; j++) {
isPrime[i * primes[j]] = false;
if (i % primes[j] == 0) {
break;
}
}
}
return isPrime[num];
}
```
阅读全文