【要求仕様】 ・入力された整数の素因数分解を求める。

・表示形式は以下 例) 入力値: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);
	}
}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS