zoukankan      html  css  js  c++  java
  • 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++;
            }
            
        }
    
    }
    

      

    今日事,今日毕。
  • 相关阅读:
    刷题向》关于一道比较优秀的递推型DP(openjudge9275)(EASY+)
    刷题向》一道简单的思路题BZOJ1800(EASY+)
    算法描述》关于二分的两三事
    值得一做》关于一道暴搜BZOJ1024(EASY+)
    写一个C语言的链表记录一下
    qt 创建第一个工程
    windows好用的便签
    .pro文件部分命令详解
    QT 子文件的建立(pri)
    QTAction Editor的简单使用(简洁明了)
  • 原文地址:https://www.cnblogs.com/lcpp/p/13045640.html
Copyright © 2011-2022 走看看