编写一个应用程序,求整数n以内的全部素数用Java编写
时间: 2024-09-30 11:04:10 浏览: 66
为了编写一个Java程序,用于找到某个整数范围内的所有素数,我们可以使用Sieve of Eratosthenes算法。这是一个古老的数学方法,有效地找出所有小于给定输入值的质数。以下是简单的Java代码实现:
```java
import java.util.ArrayList;
import java.util.Arrays;
public class PrimeNumbers {
public static ArrayList<Integer> findPrimes(int n) {
boolean[] isPrime = new boolean[n + 1];
Arrays.fill(isPrime, true);
isPrime[0] = false; // 0 and 1 are not prime
isPrime[1] = false;
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
ArrayList<Integer> primes = new ArrayList<>();
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
primes.add(i);
}
}
return primes;
}
public static void main(String[] args) {
int input = 50; // 想要查找范围,比如50以内的素数
ArrayList<Integer> primesInRange = findPrimes(input);
System.out.println("所有 " + input + " 以内的素数有:");
for (int prime : primesInRange) {
System.out.print(prime + " ");
}
}
}
```
在这个程序中,`findPrimes()`函数首先创建一个布尔数组表示从0到n的所有数字是否为素数。然后通过循环检测每个数字是否能被更小的已知素数整除,如果是,则标记相应的数字为非素数。最后,将剩余未标记为非素数的数字添加到结果列表中。
运行 `main` 函数,你可以传入任意整数n,程序会输出该范围内所有的素数。
阅读全文
相关推荐


















