题目: 将一个正整数分解质因数。例如:输入90,打印出90=2 * 3 * 3 * 5。
程序分析: 对n进行分解质因数,应先找到一个最小的质数i
- 因为最小因数就是代表不能再被他更小的因数除于(1除外)所以无非就是质数3,2,5,7…
- 能被4整除就一定能被2整除,所以for循环根本轮不到4,直接先被2分解了。所以基本保证了是质数。
- 当输入n被1以上的正数能整除那代表该数字为它的因数。
- 例如90%2余0所以代表能整合除,所以打印循环中的i
- 然后再拿90/2也就是90除于i可以得到一个整数45
- 同理可以磨余3,可得余数为0,再拿45/3得15以此类推
- 假如最后n(最后一个因数如90的最后一个因数5)等于5也就是i
- 就跳出循环,直接打印n就完成分解90=2x3x3x5
忘记很重要的一点,假如输入数字本身为素数,那么我们必须先判断是否为素数,是素数则直接打印素数=1*素数本身,就是素数的因式分解。否则我们正常分解就行
ps.复制粘贴既可以运行。
public class lx {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入数字:");
int n