搜題摸魚系列(practice 4:正整數分解質因數)
阿新 • • 發佈:2018-12-02
抄題練習/背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的值,重複執行第一步。
*/