判断输出质素(素数)的程序及其优化
注释中有详解:
/*
100以内的所有质数的输出。
质数:素数,只能被1和它本身整除的自然数。-->从2开始,到这个数-1结束为止,都不能被这个数本身整除。最小的质数是:2
*/
class PrimeNumberTest {public static void main(String[] args) {boolean isFlag = true;//标识i是否被j除尽,一旦除尽,修改其值for(int i = 2;i <= 100;i++){//遍历100以内的自然数for(int j = 2;j < i;j++){//j:被i去除if(i % j == 0){ //如果i被j除尽,则i可以被非1和它本身的数除尽,所以不为质数isFlag = false;//这个i不为素数的标志}}//if(isFlag == true){//isFlag == true则所对应的i为质数,输出System.out.println(i);}//重置isFlagisFlag = true;}}
}
优化后的:
/*
1000以内的所有质数的输出。实现方式一
质数:素数,只能被1和它本身整除的自然数。-->从2开始,到这个数-1结束为止,都不能被这个数本身整除。对PrimeNumberTest.java文件中质数输出问题的优化
*/
class PrimeNumber {public static void main(String[] args) {boolean isFlag = true;//标识i是否被j除尽,一旦除尽,修改其值int count = 0;//记录质数的个数for(int i = 2;i <= 1000;i++){//遍历1000以内的自然数//优化二://for(int j = 2;j < i;j++){//优化前for(int j = 2;j <= Math.sqrt(i);j++){//(优化后)j:被i去除//Math.sqrt(i)是指根号i的值,j <= Math.sqrt(i)与j < i效果一致但效//率更高运算次数更少,具体原因不做多讲解,可b站找个视频,打字讲解太麻烦了if(i % j == 0){ //i被j除尽isFlag = false;break;//优化一:一旦发现i可以被非1和它本身的数整除,说明其为非质素,用break//跳出内循环,执行下一轮}}//if(isFlag == true){//System.out.println(i);count++;}//重置isFlagisFlag = true;}System.out.println("质数的个数为:" + count);}
}
方法二:
/*
100000以内的所有质数的输出。实现方式二
质数:素数,只能被1和它本身整除的自然数。-->从2开始,到这个数-1结束为止,都不能被这个数本身整除。对PrimeNumberTest.java文件中质数输出问题的优化
*/
class PrimeNumberTest2 {public static void main(String[] args) {int count = 0;//记录质数的个数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++;}System.out.println("质数的个数为:" + count);}
}
判断输出质素(素数)的程序及其优化相关推荐
- C++统计10亿以内所有的质素(素数)的实现算法(附完整源码)
C++统计10亿以内所有的质素的实现算法 C++统计10亿以内所有的质素的实现算法完整源码(定义,实现,main函数测试) C++统计10亿以内所有的质素的实现算法完整源码(定义,实现,main函数测 ...
- python 一行打印出100以内的质素(素数)
python的列表推导式它是个好东西,不仅在列表里能用,在字典.集合中同样能用. 如果想用一行代码打印出100以内的质数(素数)的话,不妨尝试一下下面这行代码: [print(k) for k in ...
- 用C语言实现一个函数,判断一个数是不是素数
用C语言实现一个函数,判断一个数是不是素数 编写程序,设计一个函数IsPrime,该函数用于判定一个数m是否是素数,如果是素数则返回1,否则返回0. 素数定义:只能被1和本身整除而不能被他其他正整数整 ...
- 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。...
package com.heima.Coding;/*判断101-200之间有多少个素数(质数),并输出所有素数.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明 ...
- (c++)编写一个函数isprime(n).判断整数n是否为素数.编写程序使用此函数,当输入一个整数时,对它进行判断,当为素数时,输出1.否则,输出0.
[问题描述] 编写一个函数isprime(n).判断整数n是否为素数.编写程序使用此函数,当输入一个整数时,对它进行判断,当为素数时,输出1.否则,输出0. [输入形式] 控制台输入一个整数. [输出 ...
- 判断一个数,是否是质素
//输出一百以内所有素数 //质素只能被自身和1整除 ,反之 除去 自身和一 ,被其他数整除就不是质素 //循环 一到一百的 所有的数 for (int i = 1; i < 101; i++) ...
- Python程序-输出1000以内素数
问题简述:输出1000以内素数,同时输出素数的序数. 程序说明:编写一个函数is_prime(n),用于判断n是否为素数,使用该函数对1-1000的整数进行素性判定并且输出结果.这个程序计算时间上不是 ...
- 1,判断一个数是不是质数。 2,选取出100以上、1000以内所有个位数字与十位数字之和被10除所得余数恰好是百位数字的素数(如293).输出上述这些素数的个数及这些素数的和.
对于大于 1 的数,如果除了 1 和它本身,它不能再被其它正整数整除,那么我们说它是一个质数.晓萌想判断一个数是不是质数,希望找你写个程序,帮助她进行判断. 输入格式 输入包括一行,为一个整数 N(1 ...
- C循环之整数的逆序、素数的判断、10以内的素数、输出前十个素数
1.整数的逆序 #include<stdio.h> int main(){int a; scanf("%d",&a);//输入要计算的数 int b;int r ...
最新文章
- UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决
- 合并分支到master上
- How to Export Mailboxes with Exchange Server 2010 SP1(带状态查看,清除请求,归档备份)...
- Oracle的关系运算
- d-s 多传感器信息融合 matlab实现_自动驾驶中的多传感器融合
- basys2数码管共阳还是共阴_数据选择器Multiplexer || 数码管动态显示 ||实现逻辑函数 || 重难考点 || 数电...
- jquery纯数字验证
- C++ float的内存布局
- 经典sql语句50题_SQL面试经典50题:带你从建表开始
- quartus管脚分配后需要保存吗_电脑磁盘显示未分配怎么办?磁盘数据如何恢复?...
- Visual Studio 2010 实用功能总结
- 微信一年“扫码”约占我国GDP 9%,带动近三千万个就业机会
- 基于JAVA+SpringMVC+Mybatis+MYSQL的药店门店管理系统
- 我发现了3572个漏洞 今天又是崭新的一天
- corosycnpacemaker的高可用web集群
- ElementUI:没有dist文件夹,vue项目打包后字体图标失效,变成小方框解决方案
- 使用ln命令创建软引用(相对路径与绝对路径)
- java 删除文件或文件夹的7种方法(io基础)
- 像中文的罗马音字体复制_罗马音大全可复制app
- origin柱状图同时有两组数和两组数差值_教程 | Origin用矩阵绘制多层曲面映射图...