• Java基础50道经典练习题(4)——分解质数因数


    【程序 4 分解质因数】
    题目:将一个大于 2 正整数分解质因数。例如:输入 3, 3=3, 输入 6, 6=2*3,输入 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 的值,重复执行第一步。
     
    源码:
    package com.homework.test;
    import java.util.*;
    /*
    题目:将一个大于 2 正整数分解质因数。例如:输入 3, 3=3, 输入 6, 6=2*3,输入 90, 90=2*3*3*5。
    
    程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成:
    (1)如果这个质数k恰等于 n,则说明分解质因数的过程已经结束,打印出即可。
    (2)如果 n<>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数 n,重复执行第
    一步。
    (3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。
    
     */
    public class dividePrime {
        public static void main(String [] args){
            Scanner s = new Scanner(System.in);
            System.out.println("Please input a number:");
            int n = s.nextInt();
            s.close();
            int k =2;//最小的质数
            System.out.print(n+"=");
            while(n>=k)
            {
                if(n==k)
                {
                    System.out.print(n);
                    break;
                }
                else if(n!=k && n%k==0)
                {
                    System.out.print(k+"*");
                    n=n/k;
                }
                else
                    k++;
            }
            
        }
    
    }
    

      

    今日事,今日毕。
  • 相关阅读:
    linux 挂载 smb
    lvds(800*600)
    uart测试代码
    Linux下SPI测试程序
    Adding Flexcan driver support on Kernel
    在freescale mx6q平台上添加spi资源
    I.MX6Q(TQIMX6Q/TQE9)学习笔记——内核启动与文件系统挂载
    Android实现AppWidget、Broadcast静态注册
    Android实现AppWidget、Broadcast动态注册
    Android实现页面跳转、ListView及其事件
  • 原文地址:https://www.cnblogs.com/lcpp/p/13045640.html
Copyright © 2020-2023  润新知