本帖最后由 Jaybor 于 2015-5-28 22:02 编辑
需求:给定一个正整数n,将其分解成质因数,例如:90=2*3*3*5;
思路:
* 1.判断n的最小质数因子k,如果n等于k就直接输出结果
* 2.如果n>k
* n能被k整除,那么用n/k的上作为新的n
* n不能被k整除,用k+1代替k
* 3.必须注意的是最后一项可能会小于k导致在循环体内没有被添加,这时要在循环结束后补上;
* 例子:90=2*3*5*,最后一项为3,而此时k=6,这时就会少输出一项;
代码:- public class Test2{
- public static void main(String[] args) {
- //定义n
- int n=16;
-
- System.out.print(n+"=");
-
- int k=2;
- while(k<=n){
- if(k==n){
- System.out.println(k);
- return;//如果最后一项n等于k那么就不用在执行循环后的打印语句了
- }else if(n%k==0){
- System.out.print(k+"*");
- n=n/k;
- }
- k++;
- }
- System.out.print(n);//防止最后一项n小于k导致没有被添加到结果中去,从而产生错误。
- }
-
-
- }
复制代码
|
|