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; } }
附运行截图。