输入一个正整数 n, 求不大于n的所有素数的和的java代码
时间: 2023-05-22 13:06:45 浏览: 75
以下是 Java 代码:
```
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int sum = 0;
for (int i = 2; i <= n; i++) {
boolean isPrime = true;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
sum += i;
}
}
System.out.println(sum);
}
}
```
这段代码可以计算不大于n的所有素数之和。
相关问题
输入一个正整数 n(10 =< n <= 10000), 求不大于n的所有素数的和的java代码
以下是Java代码:
```
public class PrimeSum {
public static void main(String[] args) {
int n = 10000;
long sum = 0;
boolean[] isPrime = new boolean[n+1];
Arrays.fill(isPrime, true);
for (int i = 2; i*i <= n; i++) {
if (isPrime[i]) {
for (int j = i*i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
sum += i;
}
}
System.out.println("不大于" + n + "的所有素数的和为:" + sum);
}
}
```
请注意,在用户提供的范围内,此代码将返回正确的结果。
java传入一个正整数,返回大于该整数的最小质数
可以使用下面的代码实现:
```java
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static int nextPrime(int n) {
int i = n + 1;
while (!isPrime(i)) {
i++;
}
return i;
}
```
通过调用 `nextPrime` 方法,传入一个正整数,即可返回大于该整数的最小质数。