题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
public static void getNumber(int number){ int a = 2; System.out.print(number + "="); while(number > a){ //确保分解的数大于2,不然没有意义 if(number % a == 0){ //查看待分解数是否能被a整除 System.out.print(a + "*"); //能整除,则打印出来 number = number / a; //number的值为除以a后剩下的数 }else{ a++; //a自加一 } } System.out.print(a); //把最后一位打印出来 }
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果质数a恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> a,但n能被a整除,则应打印出a的值,并用n除以a的商,作为新的正整数,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。