JAVA分解質因子


/*題目

分解質因數(5分)

題目內容:

每個非素數(合數)都可以寫成幾個素數(也可稱為質數)相乘的形式,這幾個素數就都叫做這個合數的質因數。比如,6可以被分解為2x3,而24可以被分解為2x2x2x3。

現在,你的程序要讀入一個[2,100000]范圍內的整數,然后輸出它的質因數分解式;當讀到的就是素數時,輸出它本身。

 

輸入格式:

一個整數,范圍在[2,100000]內。

 

輸出格式:

形如:

n=axbxcxd

n=n

所有的符號之間都沒有空格,x是小寫字母x。

 

輸入樣例:

18

 

輸出樣例:

18=2x3x3

 


*/




import java.util.Scanner; public class Main { public static boolean IsPrime(int a) { boolean t=true; for (int i =2;i<a;i++) { if(a%i==0) { t=false;//就不是素數了 break; } } return t; } public static String myMethod(int a) { String Str=""; int count=1; if(IsPrime(a))//如果輸入的數字a是素數,就直接輸出結果 { Str=a+"="+a; } else//否則,繼續 { while(!IsPrime(a))//如果當前a的值不是素數就繼續循環 { for(int j=2;j<a;j++) { if(a%j==0&&count==1) { Str=a+"="+j+""; a/=j; count++; break;//為了 a繼續從2開始取余 } else if(a%j==0&&count!=1) { Str=Str+"x"+j; a/=j; break;//為了 a繼續從2開始取余 } } } Str=Str+"x"+a;//如果A是素數就最后加上a } return Str; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int number = in.nextInt(); String result=myMethod(number); System.out.print(result); } }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM