介绍
小编给大家分享一下Java怎么实现分解任意输入数的质因数算法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
具体如下:
<强>分解任意输入数的质因数:强>
质因数概念:任何一个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。
例如:12=2 x2x3 18=2 x 3 x 3等等
下面来讲解一下这个算法的思路:第一:我们首先写一个求素数的函数;第二,我们做一个分解质因数的函数,然后在其中引入素数函数来判断是否为素数;
<强>下面给出代码(仅供参考):强>
package javastudy; import java.util。*; public class  Testit3 { public 才能;static  void main (String [], args), { ,,,Scanner 拷贝=,new 扫描仪(系统); ,,,int 数量; ,,,number =, in.nextint (); ,,,的因素(数量);,//函数调用 ,,,in.close();,//关流 ,,} static 才能;void 因子(int 数字),{ ,,,如果(isPrime(数量),//首先进行判断是否为素数,如果是就直接输出 ,,,{ ,,,,,System.out.print(数量); ,,,} ,,,for (int 小姐:=,2,,小姐:& lt;=, number 作用;1;,我+ +),{ ,,,,,if (number %,小姐:==,0),{ ,,,,,,,System.out.print(小姐:+,“\ t"); ,,,,,,,int num =, number /,我,,//进行一次分解num就要变一次! ,,,,,,,if (isPrime (num)),{,//判断是否为素数,是的话就直接输出这个数字 ,,,,,,,,,System.out.print (num); ,,,,,,,},{,else //不是素数就继续分解 ,,,,,,,,,的因素(时间/number i),,//利用函数递归的思想 ,,,,,,,} ,,,,,,,//,return ; ,,,,,,,休息,,//分解完了就退出 ,,,,,} ,,,} ,,}//才能判断是否为素数的函数 static 才能;Boolean  isPrime (int 编号),{ ,,,for (int 小姐:=,2,,小姐:& lt;=, Math.sqrt(数量);,我+ +),{ ,,,,,if (number %,小姐:==,0),{ ,,,,,,,return 假; ,,,,,} ,,,} ,,,return 真实; ,,} }
运行结果:
以上是“Java怎么实现分解任意输入数的质因数算法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!