0
素因数分解プログラム 仕上げ
素因数分解するプログラムを書いたのですが、最後の仕上げで、一番後ろの*を表示させないようにできません。
問題点を指摘してください。よろしくお願いします。
class Sosubunkai{
public static void main(String[] args) throws IOException{
System.out.println("素数分解する整数を入力してください。");
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
int num = Integer.parseInt(str);
double tmp=0.;
int tmp2;
for(int i=2;i<=num;i++){
for(int j=2;j<=i;j++){
if(j == i){
int k=0;
tmp2 = num;
do{
int n= tmp2/i;
double n2 =(double)tmp2/i;
if(n2 == (double)n)
k++;
else
break;
tmp2 = n;
}while(true);
/*問題の箇所 始め*/if(k != 0){
System.out.print(i+"^"+k);
tmp *= Math.pow(i,k);
if( tmp != (double)num)
System.out.print("*");
}/*問題の箇所 終わり*/
break;
}
else {
if(i%j == 0)
break;
}
}
}
}
}