如何判断素数同时素数相加Java
时间: 2024-10-09 15:01:41 浏览: 42
在Java中,我们可以编写一个函数来判断一个数是否为素数,并通过循环将两个素数相加。下面是一个简单的示例:
```java
public class PrimeNumber {
public static boolean isPrime(int num) {
if (num <= 1) return false; // 0和1不是素数
for (int i = 2; i <= Math.sqrt(num); i++) { // 只需检查到其平方根即可,大于这个值的因子对已知因数来说都是成对出现的
if (num % i == 0) return false;
}
return true;
}
public static int sumOfPrimesBelowLimit(int limit) {
int sum = 0;
for (int i = 2; i < limit; i++) { // 遍历从2开始的整数
if (isPrime(i)) { // 如果当前数字是素数
sum += i;
}
}
return sum;
}
public static void main(String[] args) {
int lowerBound = 2, upperBound = 50; // 设置查找素数的范围
int primeSum = sumOfPrimesBelowLimit(upperBound);
System.out.println("Sum of prime numbers between " + lowerBound + " and " + upperBound + " is: " + primeSum);
// 输出两个素数并求和,可以自行设置两个素数的初始值
int prime1 = getFirstPrimeBelow(upperBound - primeSum);
int prime2 = getSecondPrimeBelow(upperBound - prime1);
int sum = prime1 + prime2;
System.out.println("Sum of two primes found: " + sum);
}
private static int getFirstPrimeBelow(int limit) {
while (!isPrime(--limit)); // 递减直到找到第一个小于给定限制的素数
return limit;
}
private static int getSecondPrimeBelow(int limit) {
while (!isPrime(--limit)); // 再次递减找到第二个素数
return limit;
}
}
```
在这个例子中,`isPrime()`函数用于判断一个数是否为素数,`sumOfPrimesBelowLimit()`计算指定范围内的所有素数之和。然后,在`main()`方法里,我们找出两个较小的素数并计算它们的和。
阅读全文