【要求仕様】 ・入力された整数の素因数分解を求める。
・表示形式は以下 例) 入力値:12 出力:12=2*2*3
【成果物】
import java.io.*;
public class HW20141216
{
public static void main(String[] args)throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
int nInputNum; //入力値を整数変換したもの
int nMath; //演算中の値格納用
String strResult = ""; //出力用
System.out.println("素因数分解させたい2以上の整数を入力してください。");
do
{
//入力要求
str = br.readLine();
try
{ //入力値を取得
nInputNum = Integer.parseInt(str);
}
catch(NumberFormatException e)
{
System.out.println("整数ではありません。もう一度入力してください。");
continue;
}
if(nInputNum <= 1)
{
System.out.println("2以上の整数を入力してください。");
continue;
}
nMath = nInputNum;
for(int i=2; i<=nMath; i++)
{
if(nMath%i != 0)
{ //割り切れなければ次へ
continue;
}
if(strResult.isEmpty())
{ //最初の文字
strResult = Integer.toString(nInputNum) + " = " +Integer.toString(i);
}
else
{ //続きの文字
strResult = strResult + " * " +Integer.toString(i);
}
//割り切れたらその数で割る
nMath /= i;
//初めから
i = 1; //ループ時にインクリメントされるから1に補正
}
System.out.println(strResult);
break;
}while(true);
}
}