//InsuuBunkai.java //安澤出海(泉獺) //素因数分解プログラム。整数を入力すると素因数分解してくれる。 import java.io.*;//入力コマンドを使用する際に必要。 public class InsuuBunkai{ public static void main(String[] args){ int a,b; a=InputNumber();//数値入力メソッドへ System.out.print(a+"="); b=CheckNumber(a);//最小の素因数を割り出す。 System.out.print(b);//素因数を出力 a=a/b; while(a!=1){ b=CheckNumber(a);//最小の素因数を割り出す。 System.out.print("×"+b);//素因数を出力 a=a/b; } System.out.println();//改行 System.out.println("素因数分解が終了しました。"); } private static int CheckNumber(int a){//最小の素因数を割り出す。 int b=0;//仮に数値を代入しておかないとコンパイルを通らない。 //数値の代入コマンドはfor文の中にあり、ここを通過しない可能性があると、 //機械(コンパイラー)が判断するからだ。 for(int i=2;;i++){ if(a%i==0){//余りがゼロなら b=i;//iを返り値にはできない。for文の終了と共にiも消えるから。 break; } } return b;//最小の因数をメインメソッドに返す。 } private static int InputNumber(){//数値入力メソッド。 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); int a=0;//22行目を参照されたし。 System.out.println("素因数分解をします。"); for(;;){//正しく入力されていなければ何度でもやり直す System.out.print("2以上の整数を入力してください。>"); try{ a=Integer.parseInt(br.readLine() );//入力&文字列を数値に変換 if(a>=2){//2以上の整数なら break; } else{//2未満の整数なら System.out.println("正しく入力してください。"); } }catch(Exception e){//文字、少数点付きの数値などなら System.out.println("正しく入力してください。"); } } return a;//入力された数値を返す。 } }