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

话不多说,直接贴码。

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; }
}

附运行截图。

java源码——计算大于一个数的最小素数的更多相关文章

  1. java源码——计算不同图形的周长和面积

    计算任意三角形,正方形,正五边形,圆形的周长和面积. 利用类的继承实现. 将计算结果进行输出. 不多说,贴码. Contants.java 常量存储类 <pre name="code& ...

  2. java源码——计算立体图形的表面积和体积

    计算球,圆柱,圆锥的表面积和体积. 利用接口实现. 上代码. Contants.java 常量存储类 package com.fuxuemingzhu.solidgraphics.contants; ...

  3. 解密随机数生成器(二)——从java源码看线性同余算法

    Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术 ...

  4. Java源码解读(一)——HashMap

    HashMap作为常用的一种数据结构,阅读源码去了解其底层的实现是十分有必要的.在这里也分享自己阅读源码遇到的困难以及自己的思考. HashMap的源码介绍已经有许许多多的博客,这里只记录了一些我看源 ...

  5. 24点扑克牌游戏——(含java源码)(GUI实现)

    给出四个数字,要求,在其间添加运算符和括号,使得计算结果等于24. 括号的放置即为决定哪几个数先进行计算.所以,我们先确定首先进行计算的两个相邻的数,计算完成后,就相当于剩下三个数字,仍需要在它们之间 ...

  6. kafka对消费者分配分区规则(Java源码)

    在上一篇 kafka topic消息分配partition规则(Java源码) 我们对生产者产生的消息分配partition规则进行了分析,那么本章我们来看看消费者是怎么样分配partition的. ...

  7. Java源码系列2——HashMap

    HashMap 的源码很多也很复杂,本文只是摘取简单常用的部分代码进行分析.能力有限,欢迎指正. HASH 值的计算 前置知识--位运算 按位异或操作符^:1^1=0, 0^0=0, 1^0=0, 值 ...

  8. Java 源码刨析 - HashMap 底层实现原理是什么?JDK8 做了哪些优化?

    [基本结构] 在 JDK 1.7 中 HashMap 是以数组加链表的形式组成的: JDK 1.8 之后新增了红黑树的组成结构,当链表大于 8 并且容量大于 64 时,链表结构会转换成红黑树结构,它的 ...

  9. java源码——0~9十个数字不重复地使用使加法表达式成立

    这个问题是在我写个的几个博客里较为复杂的一个.首先,先看看整个问题的表述. 星号表示0~9的一个数字,而且不允许重复,使得下面的加法表达式成立.输出所有结果. ※ ※ ※ ※ ※    +  2   ...

随机推荐

  1. 解决mac电脑耳机/外放突然无声音

    问题现象 mac电脑基本不会关机,近期发送隔一段时间出现网易云音乐可以播放但是耳机.外放均无声音的问题.此时,电脑本身的声音提示.远程会议声音均正常. 解决方法 网上搜了一圈解决方案,最后发现是输出设 ...

  2. Go 命令类型和未命名类型

    Go 命令类型和未命名类型 例子 package main import "fmt" // 使用type声明的是命令类型 // type new_type old_type typ ...

  3. 字符scanf 的输入注意

    1.注意scanf 不能有空格,如果有空格会将空格给输入进去 scanf("d "):---有空格 和scanf("d");--没有空格 有很大的区别

  4. Shell 分发脚本

    目录 Shell分发脚本 原理 rsync命令分析 特点 基本语法 实现 需求 环境变量 脚本实现 知识点 获得当前路径的目录dirname 获得当前路径的文件名basename shell远程执行命 ...

  5. abuse

    abuse 近/反义词: ill-treat, maltreat, mistreat, misuse, prostitute, spoil; defame, disparage, malign, re ...

  6. How To Call An Ambulance

    How to Talk to the Emergency Dispatcher [minutesmatter.upmc稻糠亩] How To Call An Ambulance [askambulan ...

  7. HTTP 之 options预请求

    一.HTTP一共有八种常见请求方法 get:参数在url上,浏览器长度有限制,不安全 post:参数不可见,长度不受限制 put:上传最新内容到指定位置 delete:删除请求的url所表示的资源 h ...

  8. Linux学习 - 系统定时任务

    1 crond服务管理与访问控制 只有打开crond服务打开才能进行系统定时任务 service crond restart chkconfig crond on 2 定时任务编辑 crontab [ ...

  9. final&static

    final 1.final修饰类,那么该类不能有子类,那么也就没有子类重写父类的方法,也就没有多态 2.final修饰成员变量,那么成员变量要么显式赋值(用第一种),要么在构造方法中赋值 无论哪一种, ...

  10. Java操作csv文件

    以前就一直很想搞懂一个问题就是java如何读取和写入csv文件,现在要花时间总结一波. 主要使用的javaCSV.jar javaCSV API:http://javacsv.sourceforge. ...