Java统计其中共有多少个不同的整数;(2)找出这些整数中所有素数,并按素数大到小的顺序输出。
时间: 2024-03-01 17:50:44 浏览: 23
好的,针对你的问题,我可以给出以下Java代码实现:
```java
import java.util.*;
public class IntegerStatistics {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Map<Integer, Integer> map = new HashMap<>();
int count = 0;
// 统计不同整数个数
while (sc.hasNextInt()) {
int num = sc.nextInt();
if (!map.containsKey(num)) {
map.put(num, 1);
count++;
} else {
map.put(num, map.get(num) + 1);
}
}
System.out.println("共有 " + count + " 个不同的整数");
// 找出素数
List<Integer> primes = new ArrayList<>();
for (int num : map.keySet()) {
if (isPrime(num)) {
primes.add(num);
}
}
Collections.sort(primes, Collections.reverseOrder());
System.out.println("素数有:");
for (int prime : primes) {
System.out.print(prime + " ");
}
}
// 判断素数
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
```
代码中使用了Map来统计不同整数的个数,使用List来存储素数,并按素数大到小的顺序输出。isPrime()方法用于判断一个数是否为素数。