-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 に答える