-3

晚上好,

我是java初学者,我被分配编写一个分解素数的程序。这就是我到目前为止所得到的。

package introductionProgramming;

import javax.swing.JOptionPane;

public class Primes {
                public static void main(String[] args) {
                int primo;

    primo = Integer.parseInt(JOptionPane.showInputDialog("Inform prime number: "));

        while (prime % 2 == 0) {
            prime = prime / 2;
        }
        while (prime % 3 == 0) {
            prime = prime / 3;
        }
        while (prime % 5 == 0) {
            prime = prime / 5;
        }

        JOptionPane.showMessageDialog(null, prime);
                }
    }

所以分解部分似乎工作,但我需要输出,如果输入数字 180,看起来类似于这样:

180  2
90   2
45   3
15   3
5    5
1

我不知道该怎么做。

4

1 回答 1

1

要将计算作为一个整体发送到输出,您需要收集所有结果并将其作为一个整体发送。为此,在查找每个结果时,您将向 StringBuffer 对象添加适当的文本,该对象将收集最终显示的结果。以下是您的代码示例。

public class Primes {
    public static void main(String[] args) {


    int prime = Integer.parseInt(JOptionPane.showInputDialog("Inform prime number: "));
    StringBuffer resultsBuffer = new StringBuffer();

    while (prime % 2 == 0) {
        resultsBuffer.append(prime+" "+2+"\n");
        prime = prime / 2;

    }
    while (prime % 3 == 0) {
        resultsBuffer.append(prime+" "+3+"\n");
        prime = prime / 3;

    }
    while (prime % 5 == 0) {
        resultsBuffer.append(prime+" "+5+"\n");
        prime = prime / 5;

    }

    resultsBuffer.append(prime+" "+1+"\n");



    JOptionPane.showMessageDialog(null, resultsBuffer);
    }
}
于 2014-05-26T01:16:41.923 回答