java输入n(20<=n<=50),求1-n之间所有非素数的和并输出
时间: 2024-10-12 19:10:51 浏览: 22
在 Java 中,你可以使用一个简单的循环结构和一个判断素数的函数来实现这个需求。首先,你需要定义一个函数 `isPrime` 来检查一个数是否是素数。然后通过输入的范围 `n` 循环遍历1到n,对非素数的数累加起来。
以下是详细的步骤:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数字 (20 <= n <= 50): ");
int n = scanner.nextInt();
if (n < 20 || n > 50) {
System.out.println("输入超出范围,已自动设置为50。");
n = 50;
}
int sumOfNonPrimes = 0;
for (int i = 1; i <= n; i++) {
if (!isPrime(i)) { // 判断 i 是否为素数
sumOfNonPrimes += i;
}
}
System.out.printf("1-%d之间所有非素数的和为: %d\n", n, sumOfNonPrimes);
scanner.close();
}
// 检查一个数是否为素数
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;
}
}
```
阅读全文