java源码——计算大于一个数的最小素数

根据输入数字,计算大于一个数的最小素数。

话不多说,直接贴码。

package com.fuxuemingzhu.countprime.main;

import java.util.Scanner;

/**
 * <p>
 * Title: Main
 * </p>
 * <p>
 * Description:计算大于某个输入数的最小素数
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年10月27日 下午4:01:41
 */
public class CountPrime {

	/**
	 * inputNum 输入的整数
	 */
	private static int inputNum = 0;

	/**
	 * <p>
	 * Title: main
	 * </p>
	 * <p>
	 * Description:程序的主函数,从这里进入
	 * </p>
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// 给一句引导输入的引导语
		System.out.println("请输入需要计算的整数:");
		// 获取键盘输入
		getInput();
		// 输出结果
		output();
	}

	/**
	 * <p>
	 * Title: getInput
	 * </p>
	 * <p>
	 * Description:获取键盘的输入结果
	 * </p>
	 */
	private static void getInput() {
		// //利用Scanner 类 获取键盘操作
		Scanner inputScanner = new Scanner(System.in);
		inputNum = inputScanner.nextInt();
		// ///关闭inputScanner
		inputScanner.close();
	}

	/**
	 * <p>
	 * Title: output
	 * </p>
	 * <p>
	 * Description:输出操作,同时进行了输入的判断
	 * </p>
	 */
	private static void output() {
		if (checkInput(inputNum)) {
			System.out.println("大于这个数的最小素数是:" + countPrime(inputNum));
		} else {
			System.out.println("输入错误!需要输入一个正整数!");
		}
	}

	/**
	 * <p>
	 * Title: checkInput
	 * </p>
	 * <p>
	 * Description:需要输入一个正整数
	 * </p>
	 * 
	 * @param num
	 * @return 输入是否正确
	 */
	private static boolean checkInput(int num) {
		if (num >= 1) {
			return true;
		}
		return false;

	}

	/**
	 * <p>
	 * Title: countPrime
	 * </p>
	 * <p>
	 * Description:计算大于num的最小素数
	 * </p>
	 * 
	 * @param num
	 * @return 大于num的最小素数
	 */
	private static int countPrime(int num) {
		// ///大于这个数的最小素数
		int answer = num + 1;
		// 上面+1是从这个数的下一个数去判断,而不判断这个数本身是不是一个素数
		while (isPrime(answer)) {
			answer++;
		}
		return answer;

	}

	/**
	 * <p>
	 * Title: isPrime
	 * </p>
	 * <p>
	 * Description:判断一个数是不是素数
	 * </p>
	 * 
	 * @param num
	 * @return 一个数是不是素数
	 */
	private static boolean isPrime(int num) {
		boolean check = false;
		// //计算到这个数的平方根,减少计算步骤
		for (int i = 2; i <= Math.sqrt(num); i++) {
			// /判断一个数整除变量i的余数是否为0,为零说明能整除,则不是素数
			if (num % ((int) i) == 0) {
				return true;
			}
		}

		return check;

	}
}


附运行截图。



posted @ 2014-11-25 16:16  负雪明烛  阅读(46)  评论(0编辑  收藏  举报