我需要在两个数字之间显示素数

时间:2016-05-19 23:48:05

标签: java

我有一个学校作业,我需要提示用户输入两个数字,并显示两者之间的所有素数我无法弄清楚我的生活。这是我的代码,只要我输入两个数字,它就会结束。

public static void pg150Exersize1B() {
    Scanner input = new Scanner(System.in);
    int num, counter, num2;
    System.out.println("Enter your low number");
    num = input.nextInt();
    System.out.println("Enter your high number");
    num2 = input.nextInt();
    counter = num;
    while (num != num2) {
        counter++;
        if (num % counter == 0) {
            if (counter == num) {
                System.out.println(counter);
                num++;
            } else {
                num++;
            }
        } else{
            num++;
        }
    }

}

1 个答案:

答案 0 :(得分:2)

解决任何编码问题的第一步是将文本任务转换为基本代码结构。

例如,我们可以将任务转换为以下主程序:

  

显示两个给定数字之间的所有素数

可以翻译为

  

打印给定范围内的所有数字(如果它们是素数

可以转换为以下伪代码:

for i in [lower,upper]
    if isPrime(i)
        print(i)

这个伪代码可以很简单地翻译成正确的java代码。

现在我们缺少一个额外的部分:函数isPrime(...)。所以让我们应用相同的模式:

  

检查,如果给定的数字是素数

添加一些数学知识:

  

数字n是素数,如果它不能被范围[2,n]中的任何数字整除

我们结束了

  

检查,如果给定数字n不能被[2,n)范围内的任何数字整除

我会留下把剩下的东西给你。

感谢您诚实并明确这是作业。