Java實(shí)現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法示例
本文實(shí)例講述了Java實(shí)現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法。分享給大家供大家參考,具體如下:
分解任意輸入數(shù)的質(zhì)因數(shù):
質(zhì)因數(shù)概念:任何一個(gè)合數(shù)都可以寫成幾個(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等等
下面來講解一下這個(gè)算法的思路:第一:我們首先寫一個(gè)求素?cái)?shù)的函數(shù);第二;我們做一個(gè)分解質(zhì)因數(shù)的函數(shù),然后在其中引入素?cái)?shù)函數(shù)來判斷是否為素?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ì)算器工具:
http://tools.jb51.net/jisuanqi/factor_calc
在線一元函數(shù)(方程)求解計(jì)算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
IDE Eval Reset忘了重置進(jìn)不去的完美解決方法
這篇文章主要介紹了IDE Eval Reset忘了重置進(jìn)不去的完美解決方法,插件安裝方式包括離線安裝和在線安裝方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12Spring Boot接口設(shè)計(jì)防篡改、防重放攻擊詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot接口設(shè)計(jì)防篡改、防重放攻擊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07java8 LocalDate LocalDateTime等時(shí)間類用法實(shí)例分析
這篇文章主要介紹了java8 LocalDate LocalDateTime等時(shí)間類用法,結(jié)合具體實(shí)例形式分析了LocalDate、LocalTime、LocalDateTime等日期時(shí)間相關(guān)類的功能與具體使用技巧,需要的朋友可以參考下2017-04-04SpringBoot整合達(dá)夢數(shù)據(jù)庫的教程詳解
這篇文章主要給大家介紹了SpringBoot整合達(dá)夢數(shù)據(jù)庫的詳細(xì)教程,文章中有詳細(xì)的圖片介紹和代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-08-08Java正則表達(dá)式實(shí)現(xiàn)在文本中匹配查找換行符的方法【經(jīng)典實(shí)例】
這篇文章主要介紹了Java正則表達(dá)式實(shí)現(xiàn)在文本中匹配查找換行符的方法,結(jié)合具體實(shí)例分析了java正則匹配查找換行符的實(shí)現(xiàn)技巧與匹配模式相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-04-04Spring MVC 4.1.3 + MyBatis零基礎(chǔ)搭建Web開發(fā)框架(注解模式)
本篇文章主要介紹了Spring MVC 4.1.3 + MyBatis零基礎(chǔ)搭建Web開發(fā)框架(注解模式),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03