• Problem04 分解质因数


    题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。

     1 import java.util.Scanner;
     2 public class Problem04 {
     3     //题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
     4     //程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
     5     //(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
     6     //(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
     7     //(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
     8     public static void main(String args[]) {
     9         Scanner s = new Scanner(System.in);
    10         System.out.println("请输入一个整数:");
    11         int num = s.nextInt();
    12         System.out.print(num+"=");
    13         fenjie(num);
    14         s.close();
    15     }
    16     
    17     public static void fenjie(int n) {
    18         //从最小的质数k=2开始,如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
    19         for(int i=2; i<=n; i++) {
    20             //如果这个质数恰好等于n,打印出即可
    21             if(n==i) {
    22                 System.out.print(n);
    23                 return ;
    24             }
    25             //else如果n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
    26             else if(n%i==0) {
    27                 System.out.print(i+"*");
    28                 fenjie(n/i);
    29                 break;
    30             }
    31         }
    32     }
    33 }

    输出结果:

    1 请输入一个整数:
    2 90
    3 90=2*3*3*5
  • 相关阅读:
    设计模式-策略模式
    java8 流式编程
    《JAVA8开发指南》使用流式操作
    linux如何查看端口被哪个进程占用?
    mac 启动php-fpm报错 failed to open configuration file '/private/etc/php-fpm.conf': No such file or direc
    Mac home 目录下创建文件夹
    UML由浅入深
    PHP扩展Swoole的代码重载机制
    Gedit中文乱码
    linux 内核源码arch/ 目录的前世今生
  • 原文地址:https://www.cnblogs.com/nemowang1996/p/10387693.html
Copyright © 2020-2023  润新知