【发布时间】:2021-02-23 06:41:21
【问题描述】:
我正在尝试制作一个 Java 程序,让用户知道他们的号码是否是 RSA 号码(或有 4 个因素)。该程序不断向我显示错误的输出。比如范围是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);
}
}
【问题讨论】:
-
您需要将 numOfFactors 设置回 0。
-
很遗憾,这不起作用
-
您是否在循环顶部将其设置回零?
-
就像我把它从 2 改成了 0
-
从我的理解来看是的,在循环的顶部
标签: java variables input output