1. 程式人生 > >搜題摸魚系列(practice 4:正整數分解質因數)

搜題摸魚系列(practice 4:正整數分解質因數)

抄題練習/背4

。。。題從網上搜的,給自己看的,侵刪

package practice;

import java.util.Scanner;

public class four4 {
	public static void main(String[] args) {
		int x;
		Scanner in = new Scanner(System.in);// 定義從鍵盤輸入
		System.out.print("請輸入一個正整數:");// 提示
		x = in.nextInt(); // 將從鍵盤輸入的數賦值給x
		new PrimeSplit(x); // 匿名初始化一個物件,還有引數的建構函式
} } class PrimeSplit { int k = 2; // 將最小的質數賦值給k public PrimeSplit(int x) { // 小於等於1的數不可以分解 if (x <= 1) { System.out.println(x + "是無效的被分解數"); } else if (x == 2) { System.out.println(x + "分解後的質因數為: 1*" + x); // 如果輸入的是最小質數2, } else { System.out.print(x + "分解後的質因數為: 1"); // 1是所有的正整數的質數 while
(k <= x) { // 輸入的數可以被k整除 if (x % k == 0) { System.out.print("*" + k); // 將k新增到結果中 x = x / k;// 除以最小質數後重新迴圈 } else { k++; } } } } } /* * 將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。 (1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。 * (2)如果n<>k,但n能被k整除,則應打印出k的值,並用n除以k的商,作為新的正整數你n,重複執行第一步。 * (3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。 */