输入一个正整数,输出不大于他的质数
时间: 2024-11-06 20:35:41 浏览: 13
python判断所输入的任意一个正整数是否为素数的两种方法
5星 · 资源好评率100%
要编写一个程序,输入一个正整数并输出所有小于或等于该数的质数(素数),你可以使用以下 Java 代码。这个程序采用了常见的“筛法”之一,即埃拉托斯特尼筛法。
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeNumbers {
public static void main(String[] args) {
int num = 25; // 输入正整数
List<Integer> primes = findPrimes(num);
System.out.println("所有不大于 " + num + " 的质数为:");
for (int prime : primes) {
System.out.print(prime + " ");
}
}
// 函数用于找出不超过指定数的质数
public static List<Integer> findPrimes(int n) {
boolean[] isPrime = new boolean[n + 1];
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
List<Integer> primesList = new ArrayList<>();
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
primesList.add(i);
}
}
return primesList;
}
}
```
在这个程序中,`findPrimes` 方法首先创建一个布尔数组 `isPrime`,其中标记每个数字是否为质数。然后从2开始遍历到 `sqrt(n)`,如果 `i` 是质数,则将其倍数标记为非质数。接着,筛选出未被标记为非质数的数字,添加到结果列表中。
运行上述代码后,会输出所有不大于给定正整数的质数。
阅读全文