针对计算100以内的素数,完成下列要求: 1)输出范围内的所有素数,每5个为一行 2)统计素数的个数 3)输出所有素数之和 用Java解决上述问题
时间: 2024-09-22 16:04:30 浏览: 58
为了满足你的要求,可以将之前的Java代码稍作修改。以下是完整的解决方案:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeNumbers {
public static void main(String[] args) {
List<Integer> primes = new ArrayList<>();
int count = 0;
long sum = 0;
for (int i = 2; i <= 100; i++) {
if (isPrime(i)) {
primes.add(i);
count++;
sum += i;
if ((count + 1) % 5 == 0) { // 每打印5个素数换行
System.out.println(primes.subList(0, count));
primes.clear(); // 清空已打印的素数
}
}
}
System.out.println("\nTotal prime numbers: " + count);
System.out.println("Sum of prime numbers: " + sum);
}
// 判断是否是素数的辅助方法
private static boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
}
```
在这个版本的代码中,我们使用了一个ArrayList存储素数,同时跟踪素数的数量和总和。每当找到并打印出5个素数后,就清空列表并继续下一轮循环。最后分别输出总数和总和。
阅读全文