題目:將一個正整數分解質因數。例如:輸入90,列印輸出90=2*3*3*5。 ...
題目:將一個正整數分解質因數。例如:輸入90,列印輸出90=2*3*3*5。
1 /* 2 分解質因數 3 */ 4 import java.util.*; 5 class num1 6 { 7 public static void main(String[ ] args)throws Exception 8 { 9 boolean b=true; 10 while(b) 11 { 12 try 13 { 14 Scanner sc = new Scanner(System.in); 15 System.out.println("********************************************************"); 16 System.out.println("開始___請輸入一個大於一的正整數:"); 17 int n = sc.nextInt(); 18 int k=2; 19 System.out.print(n+"="); 20 while(k<=n) 21 { 22 if(k==n) //判斷n是否等於k,如果等說明本身就是質數,查找完畢,break! 23 { 24 System.out.println(n);break; 25 } 26 else if(n%k==0) //此時n肯定不是質數,與k求餘,如果能被整除,此k為其一個質因數 27 { 28 System.out.print(k+"*");n=n/k; 29 } 30 else //此時的n本身不是質數,此時k也不是其質因數,從小到大,開始尋找下一個質因數 31 k++; 32 } 33 while(k>n) 34 { 35 System.out.println("<ERROR-請輸入大於1的正整數>");break; 36 } 37 } 38 catch(Exception e) 39 { 40 System.out.println("<!!您輸入的不是大於一的正整數 或者 超出計算範圍!>"); 41 } 42 Scanner scgoon = new Scanner(System.in); 43 System.out.println("_______________________________________________"); 44 System.out.println("回車繼續,輸入exit退出"); 45 String sg = scgoon.nextLine(); 46 if(sg.equals("exit")) 47 {b=false;} 48 } 49 } 50 }