java题,求大神帮助

判断两个数是否为孪生素数
2024-10-30 15:23:59
有2个网友回答
网友(1):

素数:为在大于1的自然数中,除了1和它本身以外不再有其他因数。

孪生素数:就是指相差2的素数对

代码:

public class JudgeTwinPrimeNumber {

public static void main(String[] args) {

Scanner scaner = new Scanner(System.in);
System.out.println("请输入任意两个自然数");
long l1 = scaner.nextLong();
long l2 = scaner.nextLong();

if(l1 > 1&&l1%2 != 0){
if(l2 > 1&&l2%2 != 0){
if(l1 - l2 == 2|| l2 - l1 == 2){
System.out.println(l1 + "和" + l2 + "是一对孪生素数");
}
}
}else{
System.out.println(l1 + "和" + l2 + "不是一对孪生素数");
}
}
}

效果展示:

网友(2):

public class R {

public static void main(String[] args) {
int i = 7;
int j = 5;

if (Math.abs(i - j) != 2 || !isPrime(j) || !isPrime(i)) {
System.out.println(false);
} else {
System.out.println(true);
}
}

/***
* 是否是素数
*
* @param n
* @return
*/
public static boolean isPrime(int n) {
if (n < 2) {
return false;
}
if (n == 2) {
return true;
}
if (n % 2 == 0) {
return false;
}
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
return false;
}
}

return true;

}
}