zoukankan      html  css  js  c++  java
  • JAVA 基础编程练习题4 【程序 4 分解质因数】

    4 【程序 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 的值,重复执行第一步。

    package cskaoyan;
    
    import org.junit.Test;
    
    public class cskaoyan4 {
    	@Test
    	public void zhiYinShu() {
    		java.util.Scanner in = new java.util.Scanner(System.in);
    		int number = in.nextInt();
    		int prime = 2;
    		in.close();
    
    		if (number < 2) {
    			return;
    		} else {
    			System.out.print(number + "=");
    
    			while (number != prime) {
    				if (number % prime == 0) {
    					System.out.print(prime + "*");
    					number = number / prime;
    				} else {
    					prime = nextPrime(prime);
    				}
    			}
    
    			System.out.print(number);
    		}
    	}
    
    	public int nextPrime(int number) {
    		number = number + 1;
    
    		while (true) {
    			if (isPrime(number)) {
    				return number;
    			} else {
    				number = number + 1;
    			}
    		}
    	}
    
    	public boolean isPrime(int number) {
    		boolean flag = true;
    
    		if (number < 2) {
    			flag = false;
    		} else if (number == 2) {
    			flag = true;
    		} else {
    			for (int i = 2; i <= Math.sqrt(number); i++) {
    				if (number % i == 0) {
    					flag = false;
    					break;
    				}
    			}
    		}
    
    		return flag;
    	}
    }
    
  • 相关阅读:
    线程死的时候会调用自己的notifyAll方法,join会执行结束。
    NIO中SocketChannel read()返回0的原因
    用bytebuffer进行文件的读写代码段
    java线程池参数含义
    4.3list集合
    4.1、2集合框架介绍
    3.9stingBuffer和stringBuilder
    3.8正则表达式
    3.6、7正则表达式
    3.3、4深度了解字符串
  • 原文地址:https://www.cnblogs.com/denggelin/p/11280147.html
Copyright © 2011-2022 走看看