从键盘输入一个整数a,将这个整数作为循环上限。求1到a之间的素数和非素数java
时间: 2024-02-03 18:14:13 浏览: 78
以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int primeSum = 0; // 素数和
int compositeSum = 0; // 非素数和
for (int i = 2; i <= a; i++) {
boolean flag = true; // 标记是否是素数
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
primeSum += i;
} else {
compositeSum += i;
}
}
System.out.println("素数和:" + primeSum);
System.out.println("非素数和:" + compositeSum);
}
}
```
代码说明:
1. 首先从键盘输入整数a。
2. 通过for循环遍历1到a之间的所有数字,对于每个数字i,判断是否是素数。
3. 判断素数的方法是,从2到i的平方根范围内遍历所有数字j,如果i能够被j整除,则说明i不是素数,将flag标记为false。
4. 根据flag的值,将i加入素数和或非素数和中。
5. 输出素数和和非素数和。
注意:素数是大于1的自然数,且只能被1和它本身整除。因此,在判断素数时,需要从2开始遍历,而不能从1开始。
阅读全文