package com.itheima_04; import javax.swing.JOptionPane; /* * 正整数分解质因数 * 题目: * 将一个正整数分解质因数.例如:户三人90,打印出90=2*3*3*5. * * 需求分析: * 对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: * 1).如果这个质数恰等于n,则说明分解质因数的过程已结束,打印出即可. * 2).如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数,重复执行第一步; * 3).如果n不能被k整除,则用k+1作为k的值,重复执行第一步. */ public class ResolvePrimeNumber { // 公有无参构造方法 public ResolvePrimeNumber() { } //递归方法 public void getPositive(int n) { //for循环,从2开始,i要小于等于n/2的商,i++ for (int i = 2; i <= n/2 ; i++) { //判断n%i余数为0 if (n%i==0) { System.out.print(i+"*"); //方法的内部调用方法本身 getPositive(n/i); } } System.out.print(n); //没有满足上面的条件:i <= n/2就转到了下面的出口 //终止当前的虚拟机,System:static void exit(int status) System.exit(0); } //主方法 public static void main(String[] args) { //定义字符串 String str = ""; //创建对象 ResolvePrimeNumber rpn = new ResolvePrimeNumber(); //JOptionPane:static String showInputDialog(Object message) str = JOptionPane.showInputDialog("请输入N的值(输入exit退出):"); //定义变量 int positive = 0; //包裹可能出现问题的代码 try { positive = Integer.parseInt(str); //定义异常对象:NumberFormatException } catch (NumberFormatException e) { //将此 throwable及其追踪输出至标准错误流,异常根类Throwable:void printStackTrace() e.printStackTrace(); } System.out.print(positive+"分解质因数: "+positive+"="); //调用方法 rpn.getPositive(positive); } }
正整数分解质因数
猜你喜欢
转载自blog.csdn.net/guan_moyi/article/details/79899250
今日推荐
周排行