它将只接受一个非负的偶数(大于2)并提取两个质数。以下是示例输出:
输入数字: 20
20的孪生质数是: 17和3/ 13和7
(17 +3= 20和13 +7= 20 )但是17,3,13和7是质数。我不知道该怎么做,谢谢!
但这是我的输出,我的输出只是打印3-20之间的所有孪生质数(即输入的数字)运行:
输入数字: 20
20的孪生素数是:3/5 5/7 11 / 13 17 / 19
我不知道如何做具体的问题。
以下是我的代码btw:
import java.util.Scanner;
class Prime {
boolean prime(int a) {
int count = 0;
for (int x = 1; x <= a; x++) {
if (a % x == 0) {
count++;
}
}
switch (count) {
case 2:
return true;
default:
return false;
}
}
public static void main(String args[]) {
Prime twin = new Prime();
Scanner sc = new Scanner(System.in);
int higherThan2 = 3;
System.out.print("Enter the number: ");
int number = sc.nextInt();
if (higherThan2 >= number) {
System.out.println("Must be higher than 3!");
} else {
System.out.println("\nThe twin prime numbers of " + number + " are: ");
for (int i = higherThan2; i <= (number - 2); i++) {
if (twin.prime(i) == true && twin.prime(i + 2) == true) {
System.out.print(i + " / " + (i + 2) + "\n");
}
}
}
}
}
发布于 2020-10-01 19:51:15
你可以试试这个。它是有效的,但我不认为它是最好的
System.out.println("\nThe twin prime numbers of " + number + " are: ");
for(int i = higherThan2; i < number; i++)
for(int j = number; j > higherThan2; j--)
if(twin.prime(i) && twin.prime(j) && i + j == number)
System.out.print(i + " / " + j + "\n");
https://stackoverflow.com/questions/64154098
复制相似问题