手记

将一个正整数分解质因数

//将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

package com.imooc;
import java.util.Scanner;

public class Ques2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Ques2 ques2 = new Ques2();
        //循环输入要被分解的整数
        do{                     
            int num = input.nextInt();
            System.out.print(num + "=");
            int i=2;
            int quotient=1;
            //循环输出质因数   
            do{
                if(ques2.primeNum(i)){                  
                    if(num % i == 0){
                        quotient = num/i;
                        System.out.print(i);
                        if(quotient == 1){
                            System.out.println();
                            break;
                        }else{
                            System.out.print("*");
                            num = quotient;
                        }
                    }else{
                        i++;
                    }
                }else{
                    i++;
                }
            }while(true);
        }while(true);
    }
    //判断一个整数是否为质数的方法:
    //小于3的整数中只有2为质数。大于等于3的整数a,如果全部都不能被整除2到n-1之间的整数,则n为质数。
    public static boolean ifPrNum(int n){
        if(n<3){ 
            if(n==2){
                return true;
            }else{
                return false;
            }
        }else{ 
            for(int i=2; i<n; i++){ //n依次除以2到n-1之间的数i
                if(n % i ==0){      //是否n能被i整除
                    return false; 
                }
            }
        return true;
        } 
    }
}
1人推荐
随时随地看视频
慕课网APP