java所有的质因数_Java实现分解任意输入数的质因数算法示例
本文實(shí)例講述了java實(shí)現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法。分享給大家供大家參考,具體如下:
分解任意輸入數(shù)的質(zhì)因數(shù):
質(zhì)因數(shù)概念:任何一個(gè)合數(shù)都可以寫(xiě)成幾個(gè)質(zhì)數(shù)相乘的形式。其中每個(gè)質(zhì)數(shù)都是這個(gè)合數(shù)的因數(shù),叫做這個(gè)合數(shù)的分解質(zhì)因數(shù)。分解質(zhì)因數(shù)只針對(duì)合數(shù)。
例如:12 = 2x2x3? 18 = 2 x 3 x 3等等
下面來(lái)講解一下這個(gè)算法的思路:第一:我們首先寫(xiě)一個(gè)求素?cái)?shù)的函數(shù);第二;我們做一個(gè)分解質(zhì)因數(shù)的函數(shù),然后在其中引入素?cái)?shù)函數(shù)來(lái)判斷是否為素?cái)?shù);
下面給出代碼(僅供參考):
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); //函數(shù)調(diào)用
in.close(); //關(guān)流
}
static void factor(int number) {
if(isprime(number)) //首先進(jìn)行判斷是否為素?cái)?shù),如果是就直接輸出
{
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; //進(jìn)行一次分解num就要變一次!
if (isprime(num)) { //判斷是否為素?cái)?shù),是的話就直接輸出這個(gè)數(shù)字
system.out.print(num);
} else { //不是素?cái)?shù)就繼續(xù)分解
factor(number / i); //利用函數(shù)遞歸的思想
}
// return ;
break; //分解完了就退出
}
}
}
//判斷是否為素?cái)?shù)的函數(shù)
static boolean isprime(int number) {
for (int i = 2; i <= math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
運(yùn)行結(jié)果:
ps:這里再為大家推薦幾款計(jì)算工具供大家進(jìn)一步參考借鑒:
在線分解質(zhì)因數(shù)計(jì)算器工具:
在線一元函數(shù)(方程)求解計(jì)算工具:
科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
希望與廣大網(wǎng)友互動(dòng)??
點(diǎn)此進(jìn)行留言吧!
總結(jié)
以上是生活随笔為你收集整理的java所有的质因数_Java实现分解任意输入数的质因数算法示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java doc说明书_JAVADOC
- 下一篇: 世界java大神有哪些_JAVA基础复习