加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java显示数字的Prime Factorization

发布时间:2020-12-15 00:51:42 所属栏目:Java 来源:网络整理
导读:因此,对于我的任务,我必须编写一个程序,要求用户输入整数输入,然后打印出该数字的素数因子分解. 这就是我所拥有的: import java.util.Scanner;public class PrimeFactor { public static void main(String[] args) { System.out.print("Enter a positive nu
因此,对于我的任务,我必须编写一个程序,要求用户输入整数输入,然后打印出该数字的素数因子分解.
这就是我所拥有的:
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读