java用递归判断素数
时间: 2024-03-09 14:19:54 浏览: 62
以下是Java中使用递归判断素数的示例代码:
```java
public class PrimeNumber {
public static boolean isPrime(int n) {
return isPrime(n, 2);
}
private static boolean isPrime(int n, int i) {
if (n <= 2) {
return (n == 2) ? true : false;
}
if (n % i == 0) {
return false;
}
if (i * i > n) {
return true;
}
return isPrime(n, i + 1);
}
public static void main(String[] args) {
int n = 17;
if (isPrime(n)) {
System.out.println(n + " is a prime number.");
} else {
System.out.println(n + " is not a prime number.");
}
}
}
```
在上面的示例代码中,isPrime(int n, int i)方法使用了递归来判断一个数字n是否为素数。首先,它检查n是否小于等于2,如果是,则返回true(如果n是2)或false(如果n小于2)。接下来,它检查n是否能被i整除,如果是,则返回false。然后,它检查i的平方是否大于n,如果是,则返回true,否则递归调用isPrime(n, i + 1)方法来继续检查n是否为素数。在主方法中,我们使用17作为示例数字来测试isPrime()方法,如果返回true,则说明17是素数,否则说明17不是素数。
阅读全文