• ベストアンサー

√計算のプログラム

JAVAで24、と入力すると 24=2√6と表示するような プログラミングを作りたいのですが、どうやればいいのでしょうか?? 素因数分解をするプログラムはできたのですが、そこから同じ数字が2個あったら ルートの前に出す、というのをどう書けばいいかわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

各素因数はintの配列でもってるのかな。 だとしたら int[] 素数; int temp = -1; int 根号外 = 1; int 根号内 = 1; for(int i = 0;i < 素数.length;i++){ if(temp == -1){ temp = 素数[i]; //tempが空なので突っ込む if(i == 素数.length-1){ //最後の要素なので根号内に入れる 根号内 = 根号内 * temp; } continue; }else{ //tempが空じゃないので以下の判定を行う if(temp == 素数[i]){ //tempと素数[i]が同じなので根号の外に出す 根号外 = 根号外 * 素数[i]; //temp初期化 temp = -1; }else{ //tempと素数[i]が違うのでtempを根号内に入れてtempに素数[i]を突っ込む 根号内 = 根号内 * temp; temp = 素数[i]; } } } System.out.println("根号外:"+根号外); System.out.println("根号内:"+根号内); でどうでしょう。

noname#11452
質問者

お礼

できました!ありがとうございます^^

その他の回答 (1)

回答No.1

素因数分解ができるってことは 素数と、素数の数が分かる ってことですよね。 つまり 24 = 2 * 2 * 2 * 3 素数2が3つ、素数3が1つ って。 (別途カウントしないといけませんが。) で2個あったら根号の前に出せばいいですよね。