我试着创建了一个程序来寻找一个范围内的质数.用户被要求输入两个数字,然后程序的目标将是打印出第一个数字和最后一个数字之间的质数.

下面是我的代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // program to check prime numbers b/w two numbers
        Scanner sc = new Scanner(System.in);
        byte factorsCount = 0;

        System.out.println("Enter first number: ");
        int numOne = sc.nextInt();
        System.out.println("Enter second number: ");
        int numTwo = sc.nextInt();

        System.out.println("The prime numbers are: ");

        for (int i = numOne+1; i < numTwo; i++) {
            for (int j = 1; j <= i; j++) {
                if (i%j == 0) {
                    factorsCount++;
                }
            }
            if (factorsCount == 2) {
                System.out.println(i);
            }
        }
    }
}

问题是,该计划并没有像预期的那样运作.对于某些NumOne和NumTwo,它打印一些质数,而对于其他一些,它什么都不打印

我打算让它工作的方式如下:

  1. 它要求用户输入第一个号码和第二个号码.然后,它创建一个变量来存储NO.某一特定数字所具有的因素
  2. 外部的for循环遍历第一个和第二个数字之间的数字
  3. 内部for循环计算一个数具有的因数数
  4. 在内部循环完成后,它中断内部循环,然后判断factorsCount是否等于2.如果是,则它是质数,因此它会打印出来,如果不是,它只会转到范围内的下一个数字
  5. 它重复第一步到第四步,直到它用尽了范围内的数字,然后它一定已经打印了所有质数

推荐答案

以下是您的代码的工作副本

package com.goodyear;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // program to check prime numbers b/w two numbers
        Scanner sc = new Scanner(System.in);
        byte factorsCount = 0;

        System.out.println("Enter first number: ");
        int numOne = sc.nextInt();
        System.out.println("Enter second number: ");
        int numTwo = sc.nextInt();

        System.out.println("The prime numbers are: ");

        for (int i = numOne+1; i < numTwo; i++) {
            for (int j = 1; j <= i; j++) {
                if (i%j == 0) {
                    factorsCount++;
                }
            }
            if (factorsCount == 2) {
                System.out.println(i);
            }
            factorsCount = 0;
        }
    }
}

判断后重置变量factorCount可使下一次判断按设计进行.此外,考虑通过更改循环变量使您在numOnenumTwo上的计算包含在内.

Java相关问答推荐

在URL类图中表示Java swing类

当我用OkHttpClient重写shouldInterceptRequest来发布数据时,Android WebView正在以纯HTML加载URL内容

H2弹簧靴试验跌落台

填写文本字段后锁定PDF

缩小画布比例后更改滚动窗格的内部大小

@org.springframework.beans.factory.annotation.Autowired(required=true)-注入点有以下注释:-SpringBoot

有关手动创建的包的问题

连接Quarkus中的两个异步操作

如何获得执行人?

如何使用值中包含与号的查询参数创建一个java.net.URI

JOOQ中的子查询使用的是默认方言,而不是配置的方言

AbstractList保证溢出到其他方法

Java中HashSet的搜索时间与TreeSet的搜索时间

使用for循环时出现堆栈溢出错误,但如果使用if块执行相同的操作,则不会产生错误

如何在字节数组中反转UTF-8编码?

模拟JUnit未检测到返回字符串的方法的任何声纳覆盖

OAuth:登录后无法查看Google邮箱地址

在JSON上获取反斜杠

Maven创建带有特定类的Spring Boot jar和普通jar

Spring Integration SFTP 连接失败 - 无法协商 kex 算法的密钥交换