Java 质数输出的经典算法题面试可以用
文章目录
- 数输出的实现方式一
- 质数输出的算法优化一
- 质数输出的算法优化二
- break和continue的基本使用
- 质数输出的实现方式二
数输出的实现方式一
package work.com.cn.entity; /* 100以内的所有质数的输出。 质数:素数,只能被1和它本身整除的自然数。-->从2开始,到这个数-1结束为止,都不能被这个数本身整除。最小的质数是:2 */public class PrimeNumberTest {public static void main(String[] args) {boolean isFlag = true;//标识i是否被j除尽,一旦除尽,修改其值 isFlag 可以放在里边就不用重置for(int i = 2;i<100; i++){// boolean isFlag = true;for(int j =2;j<i;j++){if(i % j ==0){isFlag = false;}}if(isFlag == true){System.out.println(i);}//重置isFlagisFlag = true;}}}
质数输出的算法优化一
/* 100000以内的所有质数的输出。实现方式一 质数:素数,只能被1和它本身整除的自然数。-->从2开始,到这个数-1结束为止,都不能被这个数本身整除。对PrimeNumberTest.java文件中质数输出问题的优化 */ class PrimeNumberTest1 {public static void main(String[] args) {boolean isFlag = true;//标识i是否被j除尽,一旦除尽,修改其值int count = 0;//记录质数的个数//获取当前时间距离1970-01-01 00:00:00 的毫秒数long start = System.currentTimeMillis();for(int i = 2;i <= 100000;i++){//遍历100000以内的自然数//优化二:对本身是质数的自然数是有效的。//for(int j = 2;j < i;j++){for(int j = 2;j <= Math.sqrt(i);j++){//j:被i去除if(i % j == 0){ //i被j除尽isFlag = false;break;//优化一:只对本身非质数的自然数是有效的。}}//if(isFlag == true){//System.out.println(i);count++;}//重置isFlagisFlag = true;}//获取当前时间距离1970-01-01 00:00:00 的毫秒数long end = System.currentTimeMillis();System.out.println("质数的个数为:" + count);System.out.println("所花费的时间为:" + (end - start));//17110 - 优化一:break:1546 - 优化二:13} }
质数输出的算法优化二
/*
100000以内的所有质数的输出。实现方式二
质数:素数,只能被1和它本身整除的自然数。–>从2开始,到这个数-1结束为止,都不能被这个数本身整除。对PrimeNumberTest.java文件中质数输出问题的优化
*/
class PrimeNumberTest2 {
public static void main(String[] args) {int count = 0;//记录质数的个数//获取当前时间距离1970-01-01 00:00:00 的毫秒数long start = System.currentTimeMillis();label:for(int i = 2;i <= 100000;i++){//遍历100000以内的自然数for(int j = 2;j <= Math.sqrt(i);j++){//j:被i去除if(i % j == 0){ //i被j除尽continue label;}}//能执行到此步骤的,都是质数count++;}//获取当前时间距离1970-01-01 00:00:00 的毫秒数long end = System.currentTimeMillis();System.out.println("质数的个数为:" + count);System.out.println("所花费的时间为:" + (end - start));//17110 - 优化一:break:1546 - 优化二:13
}
}
break和continue的基本使用
/* break和continue关键字的使用使用范围 循环中使用的作用(不同点) 相同点 break: switch-case 循环结构中 结束当前循环 关键字后面不能声明执行语句 continue: 循环结构中 结束当次循环 关键字后面不能声明执行语句*/ class BreakContinueTest {public static void main(String[] args) {for(int i = 1;i <= 10;i++){if(i % 4 == 0){break;//123//continue;//123567910//System.out.println("今晚迪丽热巴要约我!!!");}System.out.print(i);}System.out.println("\n");//******************************label:for(int i = 1;i <= 4;i++){for(int j = 1;j <= 10;j++){if(j % 4 == 0){//break;//默认跳出包裹此关键字最近的一层循环。//continue;//break label;//结束指定标识的一层循环结构continue label;//结束指定标识的一层循环结构当次循环}System.out.print(j);}System.out.println();}} }
质数输出的实现方式二
/* 100000以内的所有质数的输出。实现方式二 质数:素数,只能被1和它本身整除的自然数。-->从2开始,到这个数-1结束为止,都不能被这个数本身整除。对PrimeNumberTest.java文件中质数输出问题的优化 */ class PrimeNumberTest2 {public static void main(String[] args) {int count = 0;//记录质数的个数//获取当前时间距离1970-01-01 00:00:00 的毫秒数long start = System.currentTimeMillis();label:for(int i = 2;i <= 100000;i++){//遍历100000以内的自然数for(int j = 2;j <= Math.sqrt(i);j++){//j:被i去除if(i % j == 0){ //i被j除尽continue label;}}//能执行到此步骤的,都是质数count++;}//获取当前时间距离1970-01-01 00:00:00 的毫秒数long end = System.currentTimeMillis();System.out.println("质数的个数为:" + count);System.out.println("所花费的时间为:" + (end - start));//17110 - 优化一:break:1546 - 优化二:13} }
Java 质数输出的经典算法题面试可以用相关推荐
- java经典100例算法题_10道java经典算法题,每一题都能帮你提升java水平!
JAVA经典算法题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子 ...
- 每日经典算法题(十三) 逆推算法(平方根相关)
每日经典算法题(十三) 逆推算法(平方根相关) 平方根:Square Root 题目 有一个整数,它加上 100 后是一个 完全平方数 ,再加上 168 又是一个 完全平方数 ,请问该数是多少? 程序 ...
- 每日经典算法题(四) 分解质因数
每日经典算法题(四) 分解质因数 分解质因数:Decomposition Quality Factor 题目 将一个正整数分解质因数.例如:输入 90,打印出:90 = 2 * 3 * 3 * 5 程 ...
- python全排序算法题_Python的100道经典算法题(1)
按照c语言的100道经典算法题,自己原创写的,就得是自己的练习题了 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十位.个位的数 ...
- 每日经典算法题(十六) 九九乘法表
每日经典算法题(十六) 九九乘法表 九九乘法表:Multiplication Table 99 题目 输出 9 * 9 口诀 程序分析 分行与列考虑,共9行9列,i 控制行,j 控制列 思路 非常经典 ...
- 【经典算法题】Pow(x, n)
[经典算法题]Pow(x, n) Leetcode 0050 Pow(x, n) 题目描述:Leetcode 0050 Pow(x, n) 分析 本题的考点:快速幂. 关于快速幂的讲解可以参考:快速幂 ...
- 字节跳动经典算法题:给定一个数n如23121;给定一组数字a如[2 4 9]求由a中元素组成的小于n的最大数
字节跳动经典算法题(提问次数最多) 题目描述:给定一个数n如23121:给定一组数字a,如[2 4 9]:求由a中元素组成的小于n的最大数. 思路分析:暴力分析手法 1. 判断该位的数值是否在数字a中 ...
- 【经典算法题】单词搜索
[经典算法题]单词搜索 Leetcode 0079 单词搜索 题目描述:Leetcode 0079 单词搜索 分析 本题的考点:递归回溯. 首先我们枚举单词的起点,一共有n×mn \times mn× ...
- 【经典算法题】二叉树的最近公共祖先
[经典算法题]二叉树的最近公共祖先 Leetcode 0235 二叉搜索树的最近公共祖先 题目描述:Leetcode 0235 二叉搜索树的最近公共祖先 分析 本题的考点:LCA(最近公共祖先). 关 ...
最新文章
- 删除mysql的root用户恢复方法
- 金融风控实战——有监督分箱
- 2016年蓝桥杯省赛题解
- 电脑没有声音一键修复_电脑上有没有好用点的办公提醒小软件?有带声音提醒的桌面便签软件吗...
- C# 调用Windows API实现两个进程间的通信
- Windows 8的企业部署之路漫漫兮
- centos是什么linux操作系统,Linux 操作系统之CentOS的介绍
- AD快捷键无法使用的解决方法
- 虚拟服务器软件 海光,海光校园虚拟服务器管理软件技术参数
- mac安装win10_mac磁盘空间 mac安装win10分割多少磁盘空间合适
- 74cms3.0 SQL注入
- python gamma函数_Python 不完全伽马函数
- 太阳电池板特性实验_太阳电池伏安特性的测量
- Poco Timer
- 中国移动云MAS平台发送普通短信
- JS 全屏和退出全屏--requestFullScreen详解及兼容代码
- drools -规则语法
- 史上最全的html标签属性用法对照表
- 正则表达式忽略大小写
- 如何更改AutoCAD软件图纸背景颜色?