分解质因数
2015-09-29 17:39
246 查看
进行质因数分解
前沿
对一个自然数进行分解质因数的基础还是确定某个数是否是质素(素数)的问题。
如果,我们能够很好地来确定某个自然数就是素数,那么,在运用递归算法,就可以很快的实现对一个具体的自然数进行质因数分解了。
结论
若,一个数已经是质数了,那么它的质因数就是它本身。
算法实现:(java语言--递归实现)
注:编程时一定要注意变量的边界,以及方法的返回时机。
前沿
对一个自然数进行分解质因数的基础还是确定某个数是否是质素(素数)的问题。
如果,我们能够很好地来确定某个自然数就是素数,那么,在运用递归算法,就可以很快的实现对一个具体的自然数进行质因数分解了。
结论
若,一个数已经是质数了,那么它的质因数就是它本身。
算法实现:(java语言--递归实现)
/** * 题目:实现一个合数进行分解质因数 * 解决方法:递归方法 * @author xiaoxiaolan * */ public class FenJieZhiYinShu { private static String str=""; public static void main(String[] args) { int number=789; if(isPrime(number)){ System.out.println("该数是素数不需要再分解了!"); } else{ System.out.println(number+"的所有因素依次展示如下:"); factor(number); System.out.println(); System.out.println(number+"分解质因数的形式为:"+number+"="+str); } } private static void factor(Integer number){ for(Integer i=2;i<number;i++){ if(number%i==0){ System.out.print(i+"\t"); str=str.concat(i.toString()+"*"); Integer num=number/i; if(isPrime(num)){ str=str.concat(num.toString()); System.out.print(num); } else{ factor(num); } return;//break; } } } private static boolean isPrime(Integer num){ boolean flag=true; for(Integer i=2;i<=Math.sqrt(num);i++){ if(num%i==0){ flag=false; } } return flag; } }
注:编程时一定要注意变量的边界,以及方法的返回时机。
相关文章推荐
- js跳转页面并传值以及localStorage的用法
- Java基础---java虚拟机内存结构
- 归并排序
- java 接口、抽象类、具体类、内部类、匿名内部类的区别及它们之间的关系
- HTTP协议详解(版本二)
- windbg ida需要symbols
- Eclipse+APKTool动态调试APK
- c 开源代码
- poj 2689
- rz和sz 和他们的参数们
- effective c++ 令operator=返回一个reference to *this
- ICV hash校验值不符的问题
- 工厂模式
- SpringMVC
- poj 1848 树形dp(添加最少的边每点都恰在一个圈中)
- ubuntu下grub启动硬盘iso安装ubuntu
- 再回首【Android 自定义View (二) 进阶】
- Asp.Net alert 方法
- Oracle直接路径加载--append的深度解析
- JSTL标签