针对计算100以内的素数,完成下列要求: 1)输出范围内的所有素数,每5个为一行 2)统计素数的个数 3)输出所有素数之和
时间: 2024-09-22 08:01:43 浏览: 112
Java用面向对象和面向过程方法解求100内素数并输出素数之和
5星 · 资源好评率100%
为了满足这些需求,我们可以编写一个简单的Java程序来生成100以内的素数并按照指定格式进行输出。这里我会提供一个示例代码,然后解释其工作原理。
```java
public class PrimeNumbers {
public static void main(String[] args) {
int limit = 100;
int count = 0;
long sum = 0;
// 输出每个5个素数为一行
for (int i = 2; i <= limit; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
count++;
sum += i;
if ((count % 5) == 0) {
System.out.println();
}
}
}
System.out.println("\nTotal prime numbers: " + count);
System.out.println("Sum of prime numbers: " + sum);
}
// 判断是否为素数
public static boolean isPrime(int num) {
if (num <= 1) return false;
if (num == 2 || num == 3) return true;
if (num % 2 == 0 || num % 3 == 0) return false;
int sqrtNum = (int) Math.sqrt(num);
for (int i = 5; i <= sqrtNum; i += 6) {
if (num % i == 0 || num % (i + 2) == 0) {
return false;
}
}
return true;
}
}
```
在这个代码中:
- `main` 方法包含了整个逻辑,首先定义了100作为上限(limit),计数器(count)用于统计素数数量,以及总和(sum)。
- 使用 `for` 循环遍历从2到limit的所有数字,如果当前数字是素数(由 `isPrime` 函数判断),则打印出来,更新计数和总和。每达到5个素数就换行(使用 `%` 操作符检查计数除以5的余数)。
- `isPrime` 方法用来检测一个整数是否是素数。对于小于或等于1的数、2和3(特殊情况)、偶数和能被3整除的数,直接返回false;然后检查大于3且不是3的倍数的数,利用6的倍数(即i和i+2)进行优化,因为除了2以外所有的素数都可以表示成6k±1的形式。
运行这个程序后,它会按要求输出100以内的素数、它们的数量以及总和。
阅读全文