注释中有详解:

/*
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);}
}

判断输出质素(素数)的程序及其优化相关推荐

  1. C++统计10亿以内所有的质素(素数)的实现算法(附完整源码)

    C++统计10亿以内所有的质素的实现算法 C++统计10亿以内所有的质素的实现算法完整源码(定义,实现,main函数测试) C++统计10亿以内所有的质素的实现算法完整源码(定义,实现,main函数测 ...

  2. python 一行打印出100以内的质素(素数)

    python的列表推导式它是个好东西,不仅在列表里能用,在字典.集合中同样能用. 如果想用一行代码打印出100以内的质数(素数)的话,不妨尝试一下下面这行代码: [print(k) for k in ...

  3. 用C语言实现一个函数,判断一个数是不是素数

    用C语言实现一个函数,判断一个数是不是素数 编写程序,设计一个函数IsPrime,该函数用于判定一个数m是否是素数,如果是素数则返回1,否则返回0. 素数定义:只能被1和本身整除而不能被他其他正整数整 ...

  4. 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。...

    package com.heima.Coding;/*判断101-200之间有多少个素数(质数),并输出所有素数.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明 ...

  5. (c++)编写一个函数isprime(n).判断整数n是否为素数.编写程序使用此函数,当输入一个整数时,对它进行判断,当为素数时,输出1.否则,输出0.

    [问题描述] 编写一个函数isprime(n).判断整数n是否为素数.编写程序使用此函数,当输入一个整数时,对它进行判断,当为素数时,输出1.否则,输出0. [输入形式] 控制台输入一个整数. [输出 ...

  6. 判断一个数,是否是质素

    //输出一百以内所有素数 //质素只能被自身和1整除 ,反之 除去 自身和一 ,被其他数整除就不是质素 //循环 一到一百的 所有的数 for (int i = 1; i < 101; i++) ...

  7. Python程序-输出1000以内素数

    问题简述:输出1000以内素数,同时输出素数的序数. 程序说明:编写一个函数is_prime(n),用于判断n是否为素数,使用该函数对1-1000的整数进行素性判定并且输出结果.这个程序计算时间上不是 ...

  8. 1,判断一个数是不是质数。 2,选取出100以上、1000以内所有个位数字与十位数字之和被10除所得余数恰好是百位数字的素数(如293).输出上述这些素数的个数及这些素数的和.

    对于大于 1 的数,如果除了 1 和它本身,它不能再被其它正整数整除,那么我们说它是一个质数.晓萌想判断一个数是不是质数,希望找你写个程序,帮助她进行判断. 输入格式 输入包括一行,为一个整数 N(1 ...

  9. C循环之整数的逆序、素数的判断、10以内的素数、输出前十个素数

    1.整数的逆序 #include<stdio.h> int main(){int a; scanf("%d",&a);//输入要计算的数 int b;int r ...

最新文章

  1. UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决
  2. 合并分支到master上
  3. How to Export Mailboxes with Exchange Server 2010 SP1(带状态查看,清除请求,归档备份)...
  4. Oracle的关系运算
  5. d-s 多传感器信息融合 matlab实现_自动驾驶中的多传感器融合
  6. basys2数码管共阳还是共阴_数据选择器Multiplexer || 数码管动态显示 ||实现逻辑函数 || 重难考点 || 数电...
  7. jquery纯数字验证
  8. C++ float的内存布局
  9. 经典sql语句50题_SQL面试经典50题:带你从建表开始
  10. quartus管脚分配后需要保存吗_电脑磁盘显示未分配怎么办?磁盘数据如何恢复?...
  11. Visual Studio 2010 实用功能总结
  12. 微信一年“扫码”约占我国GDP 9%,带动近三千万个就业机会
  13. 基于JAVA+SpringMVC+Mybatis+MYSQL的药店门店管理系统
  14. 我发现了3572个漏洞 今天又是崭新的一天
  15. corosycnpacemaker的高可用web集群
  16. ElementUI:没有dist文件夹,vue项目打包后字体图标失效,变成小方框解决方案
  17. 使用ln命令创建软引用(相对路径与绝对路径)
  18. java 删除文件或文件夹的7种方法(io基础)
  19. 像中文的罗马音字体复制_罗马音大全可复制app
  20. origin柱状图同时有两组数和两组数差值_教程 | Origin用矩阵绘制多层曲面映射图...

热门文章

  1. 工作五年,面试官说我只会CRUD!竟然只给我10K!
  2. 用xlrd根据lvef数据分组ECG文件
  3. java解析excle
  4. 秒杀商城项目----Dubbo+Zookeeper分布式秒杀系统模块分析
  5. PCL点云库 点云拼接
  6. 请大家交流一下购买房子注意事项
  7. 什么是angular
  8. java中的WeakReference(弱引用)
  9. 简单删除 流氓软件强行篡改的默认首页 (如:桔梗导航)
  10. CS3K.com Google面试题| 原子计数