【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
import java.util.*; public class PrimeSplitTest{ 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+ "是无效的被分解数"); } //如果输入的是最小质数2, else if(x==2){ System.out.println(x+ "分解后的质因数为: 1*"+x); } else { //1是所有的正整数的质数 System.out.print(x+ "分解后的质因数为: 1"); while(k<=x){ //输入的数可以被k整除 if(x%k==0){ //将k添加到结果中 System.out.print( "*"+k); x = x/k; //除以最小质数后重新循环 } //如果k不能被x整除,就将k++ else{ k++; } } } } }