繁体   English   中英

尝试使用 Java 程序查找具有 4 个因数的数字,但 Output 是错误的

[英]Trying to Find numbers that have 4 factors with Java Program but Output is Wrong

我正在尝试制作一个 Java 程序,让用户知道他们的号码是否是 RSA 号码(或有 4 个因素)。 该程序不断向我显示错误的 output。 比如范围是11-15时,不是输出2,而是输出0,请指教。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
    
        Scanner in = new Scanner(System.in);    
        int minimum = in.nextInt();    
        int maximum = in.nextInt();    
    
        int numOfFactors = 2;
        
        int numRSA = 0;
    
        int number = minimum;
    
        while (number>= minimum && number <= maximum){ 
            // condition for nonprime number
            for (int i = 2; i <= number/2; ++i) {
                if (number % i == 0 && number>=minimum && number<maximum) {
                    numOfFactors = numOfFactors + 1;
                }
            }
            if (numOfFactors == 4){
                numRSA = numRSA + 1;
            }
            number= number + 1;
        }
            
        System.out.println("The number of RSA numbers between " +minimum + " and " +maximum+ " is " +numRSA);
    
    }
}

您需要在 while 循环中初始化numOfFactors

while (number <= maximum){ 
    int numOfFactors =2;
    // condition for nonprime number
    for (int i = 2; i <= number/2; ++i) {
        if (number % i == 0) {
            numOfFactors++;
        }
    }
    if (numOfFactors == 4){
        numRSA++;
    }
    number++;
}

您需要为每个数字重置它,然后只有变量将具有该特定数字的因子数。 在当前代码中,它存储了导致该问题的因素的总和。 (例如:在12之后,因子的数量将是6 ,不会重置)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM