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; }
}
附运行截图。
java源码——计算大于一个数的最小素数的更多相关文章
- java源码——计算不同图形的周长和面积
计算任意三角形,正方形,正五边形,圆形的周长和面积. 利用类的继承实现. 将计算结果进行输出. 不多说,贴码. Contants.java 常量存储类 <pre name="code& ...
- java源码——计算立体图形的表面积和体积
计算球,圆柱,圆锥的表面积和体积. 利用接口实现. 上代码. Contants.java 常量存储类 package com.fuxuemingzhu.solidgraphics.contants; ...
- 解密随机数生成器(二)——从java源码看线性同余算法
Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术 ...
- Java源码解读(一)——HashMap
HashMap作为常用的一种数据结构,阅读源码去了解其底层的实现是十分有必要的.在这里也分享自己阅读源码遇到的困难以及自己的思考. HashMap的源码介绍已经有许许多多的博客,这里只记录了一些我看源 ...
- 24点扑克牌游戏——(含java源码)(GUI实现)
给出四个数字,要求,在其间添加运算符和括号,使得计算结果等于24. 括号的放置即为决定哪几个数先进行计算.所以,我们先确定首先进行计算的两个相邻的数,计算完成后,就相当于剩下三个数字,仍需要在它们之间 ...
- kafka对消费者分配分区规则(Java源码)
在上一篇 kafka topic消息分配partition规则(Java源码) 我们对生产者产生的消息分配partition规则进行了分析,那么本章我们来看看消费者是怎么样分配partition的. ...
- Java源码系列2——HashMap
HashMap 的源码很多也很复杂,本文只是摘取简单常用的部分代码进行分析.能力有限,欢迎指正. HASH 值的计算 前置知识--位运算 按位异或操作符^:1^1=0, 0^0=0, 1^0=0, 值 ...
- Java 源码刨析 - HashMap 底层实现原理是什么?JDK8 做了哪些优化?
[基本结构] 在 JDK 1.7 中 HashMap 是以数组加链表的形式组成的: JDK 1.8 之后新增了红黑树的组成结构,当链表大于 8 并且容量大于 64 时,链表结构会转换成红黑树结构,它的 ...
- java源码——0~9十个数字不重复地使用使加法表达式成立
这个问题是在我写个的几个博客里较为复杂的一个.首先,先看看整个问题的表述. 星号表示0~9的一个数字,而且不允许重复,使得下面的加法表达式成立.输出所有结果. ※ ※ ※ ※ ※ + 2 ...
随机推荐
- c++STL容器之string容器
本质:string是c++风格的字符串,而string本质上是一个类 string和char*的区别: char*是一个指针: string是一个类,类内部封装了char*,管理这个字符串,是一个ch ...
- 【GS文献】植物全基因组选择育种技术原理与研究进展
目录 1. 优势杂交育种预测 2. GS育种原理与模型算法 岭回归和LASSO回归 贝叶斯方法 GBLUP和RRBLUP 偏最小二乘法 支持向量机/支持向量回归 其他方法 3. 模型预测能力验证 4. ...
- entfrm-boot开发平台一览【entfrm开源模块化无代码开发平台】
介绍 entfrm-boot是一个以模块化为核心的无代码开发平台,能够让中小企业快速从零搭建自己的开发平台:开箱即用,可插拔可自由组合:以模块化的方式,最大化的代码复用,避免重复开发:无代码可视化开发 ...
- Shell脚本实现监视指定进程的运行状态
在之前的博客中,曾经写了自动化测试程序的实现方法,现在开发者需要知道被测试的进程(在此指运行在LINUX上的主进程的)在异常退出之前的进程的运行状态,例如内存的使用率.CPU的使用率等. 现用shel ...
- VueAPI 2 (生命周期钩子函数)
所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法. beforeCreate 在实例初始化之后,此时还不 ...
- react中在hooks方法useEffect中加载异步数据
useEffect( ()=>{ (async function getPipeList(value:any) { let result= await GetPipeList(value); s ...
- 【Java多线程】线程池-ThreadPoolExecutor
ThreadPoolExecutor提供了四个构造方法: 我们以最后一个构造方法(参数最多的那个),对其参数进行解释: public ThreadPoolExecutor(int corePoolSi ...
- MFC入门示例之树控件(CTreeControl)
1 //增加按钮 2 void CMFCApplication8Dlg::OnBnClickedButtonAdd() 3 { 4 //树中添加节点 5 CString strText; 6 GetD ...
- ClassLoader.loadClass()与Class.forName()的区别《 转》
ClassLoader.loadClass()与Class.forName()区别: ClassLoader.loadClass()与Class.forName()大家都知道是反射用来构造类的方法,但 ...
- 我的第一篇博客blog,笑哭
我的第一篇博客blog Markdown学习 一级标题:#加一个空格 加 文字, 二级标题:加2个##以此类推 字体 粗体:hello world!字体前有二个星号,字体后有二个星号 斜体:hello ...