import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class HW20141216 {
  static String str = "";
  static int cnt = 0;
  static boolean endFlg = false;

  public static void main(String[] args) throws IOException{

  try{
      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
      System.out.println("整数を入力してください。");

      //入力値を取得:n
      int n=Integer.parseInt(br.readLine());

      System.out.print(n + "=");

      //素因数を求めて標準出力に書く
      writeSosu(n);

   }catch(NumberFormatException e){
    System.out.println("整数を入力してください。");
   }

  }

  //関数名:writeSosu
  //引数  :int n (素因数を求めたい数)
  //戻り値:boolean
  private static boolean writeSosu(int n){
      boolean prime=true;
      int x = 0;

      //入力値nまでのすべての素数を探し続ける
      for (int i = 1; i<= n; i++ )
      {
          int m=(int)Math.sqrt(i);
          prime=true;

          for(int j=2;j<=m;j++){
            if(n%j==0){
              prime=false;
              break;
            }
          }

          if (prime & i!=1){
            //素数iをゲット!

            if (n%i == 0 & endFlg != true ){
              //割り切れるときは素因数なので画面表示
              //演算子をセット
              if(cnt!=0 & str == "") str = "*";
              cnt++;
              System.out.print(str + i);

              n= n/i;
              if (n==1) endFlg = true;
              writeSosu(n);

            }
          }
      }

    return true;

  }

}

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