IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 2021-07-10 -> 正文阅读

[Java知识库]2021-07-10

Java基础编程——输出[1,100]的所有质数

一、前言

目的要求:输出[1,100]的所有质数
相关技术:
1、java的for循环嵌套调用
2、Math的sqrt(Int)方法
···
基础功能:显示[1,100]的所有质数

二、编程

描述:100以内的所有质数的输出。
质数:素数,只能被1和它本身整除的自然数。–>从2开始,到这个数-1结束为止,都不能被这个数本身整除。
最小的质数是:2。

1、步骤一:编写最基本的功能

int count = 0;
//遍历[1,100]的数字
for(int figure = 1; figure <= 100; figure++){
			//定义布尔值,(为了判断figure是否为质数,以此输出figure)
			boolean isPrime=true;
			//遍历判断figure是否为质数
			for(int yinShu = 2; yinShu < figure; yinShu++){
			//判断figure 有无因数(除了它本身和1这两个因数外),以此判断figure 是否为质数
				if(figure % yinShu == 0){
					isPrime = false;
				}
			}
			//判断figure是否为质数,并且输出质数
			if(isPrime){
				System.out.print(figure + "\t");
				count++;
				//换行
				if(count % 5 == 0){
					System.out.println();
				}
			}
		}
	}
	System.out.print("\n[1,100]内一共有" + count + "个质数");

2-1、步骤二:运用普通方法优化代码
(1)减少内循环(yinShu 的循环)的遍历次数:
Math.sqrt()为算术平方根,(y=m*n,则一定会有m和n其中一个小于或者等于y的平方根)

//优化二:只对本身是质数的自然数是有效的。
			int k = (int)Math.sqrt(figure);
//内循环——yinShu 
for(;figure <= k;){···}

(2)打断内循环(yinShu 的循环)的不必要的遍历次数:

//内循环——yinShu
for(;figure <= k;){···
if(figure % yinShu == 0){
					isPrime = false;
					break;//优化三:只对本身非质数的自然数是有效的
				}
				}

2-2、步骤二(额外):运用标签label优化代码

int count = 0;
		//效率较高,但是较为全面
		//label标签
		label:for(int figure = 1; figure <= 1000; figure++){
			//优化一:只对本身是质数的自然数是有效的。
			int k = (int)Math.sqrt(figure);
			//遍历判断
			for(int yinShu = 2; yinShu <= k; yinShu++){
				if(figure % yinShu == 0){
					continue label;//优化二:只对本身非质数的自然数是有效的。

				}
			}
			//输出质数
			System.out.print(figure + "\t");
			count++;
			//换行
			if(count % 10 == 0){
				System.out.println();
			}
		}
		System.out.print("\n[1,100]内一共有" + count + "个质数");
		//获取当前时间距离1970-01-0100:00:00的毫秒数
		long end = System.currentTimeMillis();
		System.out.println("\n所花费的时间为" + (end - start) + "毫秒");

三、实现结果
在这里插入图片描述

四、总结
编写java项目或者某些功能:
我们需要先将最基本的功能编写出来并且正确执行出来;
然后,我们再进行优化。

五、额外的程序功能

	//获取当前时间距离1970-01-0100:00:00的毫秒数
	long start = System.currentTimeMillis();
	//多条程序执行语句
	···
	···
	//
	long end = System.currentTimeMillis();
	System.out.println("\n所花费的时间为" + (end - start) + "毫秒");

实现结果
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:30:26  更:2021-07-11 16:32:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:46:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码