分解质因数

import java.util.Scanner;

//7. 将一个正整数进行分解质因数操作 例如: 输入90 结果 2*3*3*5
public class HomeWork7 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("输入正整数:");
        int num = input.nextInt();
        int i = 2;
        while(i <= num){
            if(i == num){
                System.out.println(num);
                break;
            }else if(num % i == 0){
                System.out.print(i + "*");
                num = num / i;
            }else{
                i++;
            }
        }

    }
}
/*
7. 将一个正整数进行分解质因数操作 例如: 输入90 结果 2*3*3*5
	质因数 有且被1 和 本身整除
	2 3 5 7 11 13 17 19 23
	
	90 ==> 2 * 3 * 3 * 5
	15 ==> 3 * 5
	120 == > 2 * 2 * 2 * 3 * 5
	
	【问题】终止条件在哪里?
		1. 循环变量 == 被操作数
		2. 被操作数 ==> 1
	
	120 ÷ 2 
		==> 60 ÷ 2
		==> 30 ÷ 2
		==> 15 ÷ 2错 2 += 1 ==> 3
		==> 15 ÷ 3 
		==> 5 ÷ 3 错 3 += 1 ==> 4
		==> 5 ÷ 4 错 4 += 1 ==> 5
		==> 
	
	解出一个数字之后,需要再将循环变量保持原样 继续操作
*/
class HomeWork7 {
	public static void main(String[] args) {
		// 分解质因数从2开始
		int i = 2;
		int num = 23;
		
		// 要求i值小于等于num,继续循环
		while (i <= num) {
			if (num % i == 0) {
				System.out.println("i : " + i);
				num /= i;
				
				i -= 1;
			}
			
			i += 1;
		}
	}
}
posted @ 2020-04-18 14:27  jacob_code  阅读(68)  评论(0)    收藏  举报