首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何显示输入数字(质数)的2位数和

如何显示输入数字(质数)的2位数和
EN

Stack Overflow用户
提问于 2020-10-01 19:06:26
回答 1查看 61关注 0票数 0

它将只接受一个非负的偶数(大于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:

代码语言:javascript
运行
复制
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");
                }
            }
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-01 19:51:15

你可以试试这个。它是有效的,但我不认为它是最好的

代码语言:javascript
运行
复制
 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");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64154098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档