java找出数组的质数
时间: 2023-06-06 13:06:39 浏览: 100
Sure, 对于给定的整数数组,您可以使用以下Java代码来查找质数:
```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 void findPrimes(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (isPrime(arr[i])) {
System.out.println(arr[i] + " is a prime number.");
}
}
}
```
以上代码包含两个方法,isPrime(n)用于检查给定整数n是否是质数,findPrimes(arr)用于查找给定整数数组中的所有质数并输出。
相关问题
Java写一个找出一万以内的素数的程序
以下是使用 Java 语言编写找出一万以内的素数的程序示例:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 10000;
boolean[] isPrime = new boolean[n + 1];
// 初始化所有数都为素数
for (int i = 2; i <= n; i++) {
isPrime[i] = true;
}
// 从2开始,将所有能被整除的数标记为非素数
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
// 输出素数列表
System.out.print("Prime numbers within 10000: ");
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
```
这个程序使用了一个布尔类型的数组 `isPrime` 来表示每个数是否为素数。首先将所有数都初始化为素数,然后从 2 开始,将能被整除的数标记为非素数。最后输出所有素数的列表。
运行上述代码,可以得到如下输出结果:
```
Prime numbers within 10000: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997
```
这是一万以内的所有素数列表。
java筛选法求素数
筛选法(Sieve of Eratosthenes)是一种用于求解素数的经典算法,它可以高效地找出一定范围内的所有素数。下面是Java中使用筛选法求素数的示例代码:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 100; // 求解范围为1到100的素数
boolean[] isPrime = new boolean[n + 1]; // 初始化一个布尔数组,默认值为false
// 初始化数组,假设所有数都是素数
for (int i = 2; i <= n; i++) {
isPrime[i] = true;
}
// 筛选素数
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
// 输出素数
System.out.println("素数列表:");
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
```
上述代码中,我们使用一个布尔数组`isPrime`来表示每个数是否为素数。首先将数组中所有元素初始化为`true`,然后从2开始遍历数组,如果当前数字是素数,则将其倍数标记为非素数。最后遍历数组输出所有素数。