import java.util.Scanner;
public class PrimeFactor {
? ? //讀入一個(gè)數(shù)吗讶,輸出該數(shù)的因式分解式子
? ? public static void main(String[] args) {
? ? ? ? Scanner sc=new Scanner(System.in);
? ? ? ? int num=sc.nextInt();
? ? ? ? int fac;
? ? ? ? System.out.print(num+"=");
? ? ? ? for (;num>1;){
? ? ? ? ? ? fac=factor(num);
? ? ? ? ? ? num/=factor(num);
? ? ? ? ? ? System.out.print(fac);
? ? ? ? ? ? if (num>1){
? ? ? ? ? ? ? ? System.out.print("x");
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? //0~5000的質(zhì)數(shù)表
? ? public static int[] primeList(){
? ? ? ? int cnt = 0;
? ? ? ? int[] arrPrime=new int[669];
? ? ? ? for (int i = 2; i <= 5000; i++) {
? ? ? ? ? ? boolean is = true;
? ? ? ? ? ? for (int j = 2; j < i; j++) {
? ? ? ? ? ? ? ? if (i % j == 0) {
? ? ? ? ? ? ? ? ? ? is = false;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? if (is) {
? ? ? ? ? ? ? ? arrPrime[cnt]=i;
? ? ? ? ? ? ? ? cnt++;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return arrPrime;
? ? }
? ? //輸入一個(gè)小于十萬(wàn)的數(shù),返回該數(shù)最小的質(zhì)因數(shù)
? ? public static int factor(int num){
? ? ? ? int k=1;
? ? ? ? for (int i:primeList()){
? ? ? ? ? ? if (num%i==0){
? ? ? ? ? ? ? ? k=i;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return k;
? ? }
}
————————————————
版權(quán)聲明:本文為CSDN博主「學(xué)習(xí)12138000」的原創(chuàng)文章重绷,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明昭卓。
原文鏈接:https://blog.csdn.net/qq_42193009/article/details/105438648