java质因数算法_Java分解任意输入数的质因数算法的实现示例
這篇文章主要介紹了Java實現分解任意輸入數的質因數算法,涉及java數學運算相關操作技巧,需要的朋友可以參考下
本文實例講述了Java實現分解任意輸入數的質因數算法。分享給大家供大家參考,具體如下:
分解任意輸入數的質因數:
質因數概念:任何一個合數都可以寫成幾個質數相乘的形式。其中每個質數都是這個合數的因數,叫做這個合數的分解質因數。分解質因數只針對合數。
例如:12 = 2x2x3 18 = 2 x 3 x 3等等
下面來講解一下這個算法的思路:第一:我們首先寫一個求素數的函數;第二;我們做一個分解質因數的函數,然后在其中引入素數函數來判斷是否為素數;
下面給出代碼(僅供參考):
package javastudy;
import java.util.*;
public class Testit3 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int number;
number = in.nextint();
factor(number); //函數調用
in.close(); //關流
}
static void factor(int number) {
if(isPrime(number)) //首先進行判斷是否為素數,如果是就直接輸出
{
System.out.print(number);
}
for (int i = 2; i <= number - 1; i++) {
if (number % i == 0) {
System.out.print(i + "\t");
int num = number / i; //進行一次分解num就要變一次!
if (isPrime(num)) { //判斷是否為素數,是的話就直接輸出這個數字
System.out.print(num);
} else { //不是素數就繼續分解
factor(number / i); //利用函數遞歸的思想
}
// return ;
break; //分解完了就退出
}
}
}
//判斷是否為素數的函數
static Boolean isPrime(int number) {
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
運行結果:
總結
以上是生活随笔為你收集整理的java质因数算法_Java分解任意输入数的质因数算法的实现示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 微信自定义菜单开发_微信公众号
- 下一篇: java 假设当前时间_Java如何比较