java传入一个正整数,返回大于该整数的最小质数
时间: 2024-05-11 17:15:24 浏览: 76
可以使用下面的代码实现:
```java
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static int nextPrime(int n) {
int i = n + 1;
while (!isPrime(i)) {
i++;
}
return i;
}
```
通过调用 `nextPrime` 方法,传入一个正整数,即可返回大于该整数的最小质数。
相关问题
java设计一个方法primeList(),返回大于正整数num的n个质数组成的列表集合 例如传入正整数50和5,返回[53, 59, 61, 67, 71]
以下是实现该方法的Java代码:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeNumberGenerator {
public static List<Integer> primeList(int num, int n) {
List<Integer> primes = new ArrayList<>();
int count = 0;
int currentNum = num + 1;
while (count < n) {
if (isPrime(currentNum)) {
primes.add(currentNum);
count++;
}
currentNum++;
}
return primes;
}
private static boolean isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
List<Integer> primes = primeList(50, 5);
System.out.println(primes.toString());
}
}
```
在这个实现中,我们首先定义了一个 `primeList()` 方法来生成 n 个大于 num 的质数。这个实现首先创建了一个空的 `primes` 列表,然后使用一个 `count` 变量来计数已找到的质数数量。我们使用另一个变量 `currentNum` 来迭代寻找质数。在每次循环中,我们首先检查 `currentNum` 是否为质数,如果是,我们将其添加到 `primes` 列表中,并将 `count` 加 1。一旦我们找到了 n 个质数,我们就返回 `primes` 列表。
为了判断一个数是否为质数,我们定义了一个 `isPrime()` 方法。这个实现首先检查传入的数是否小于 2,因为 2 以下的数不是质数。然后我们使用一个循环来检查从 2 到这个数平方根之间的所有数,看是否有任何一个能整除这个数,如果有,这个数就不是质数。如果没有,这个数就是质数。
构造一个名为is_prime()的函数,要求该函数实现的功能为:传入一个大于2的正整数$num进行判断,判断该正整数$num是否为质数,如果是质数,输出“$num是质数”,若不是则输出“$num不是质数”;然后调用该函数对11、113、213三个正整数进行测试。
可以编写如下的Python函数`is_prime()`来实现这个功能:
```python
def is_prime(num):
"""
判断一个大于2的正整数是否为质数
:param num: 需要判断的正整数
:return: 如果是质数,返回字符串"$num是质数",否则返回"$num不是质数"
"""
if not isinstance(num, int) or num <= 1:
return f"{num}不是一个正整数"
for i in range(2, int(num ** 0.5) + 1): # 质数判断只需要检查到sqrt(num)
if num % i == 0:
return f"{num}不是质数"
return f"{num}是质数"
# 测试函数
test_numbers = [11, 113, 213]
for num in test_numbers:
result = is_prime(num)
print(result)
```
当运行这段代码时,它会依次检查给定的三个数11,113,和213,判断它们是否为质数,并分别打印出结果。
阅读全文