因此,对于我的任务,我必须编写一个程序,要求用户输入整数输入,然后打印出该数字的素数因子分解.
这就是我所拥有的:
这就是我所拥有的:
import java.util.Scanner; public class PrimeFactor { public static void main(String[] args) { System.out.print("Enter a positive number: "); Scanner scanner = new Scanner (System.in); int number = scanner.nextInt(); int count; for (int i = 2; i<=(number); i++) { count = 0; while (number % i == 0) { number /= i; count++; if (count == 0) { continue; } } System.out.println(i+ "**" + count); } } }
我现在遇到的问题是,无论何时我运行它,比如15453号,我得到一个从1到100的每个因子的列表及其指数,当我只想要素因子时,我被困在如何继续.
解决方法
你快到了!将if-continue块移到for循环之外.否则,它会“继续”最内层的循环,而不是你想要的循环.
while (number % i == 0) { number /= i; count++; } if (count == 0) { continue; } System.out.println(i+ "**" + count);
或者,您可以在if(count!= 0)中包含System.out.println调用,因为它是继续后面的唯一语句:
while (number % i == 0) { number /= i; count++; } if (count != 0) { System.out.println(i+ "**" + count); }
您在ideone上的程序:link.