质数:

又称素数,只能被1和它本身整除的数就是质数。

难点:

需要两层循环,外层循环99遍;

内层循环,控制除数为2到98(也就是2到被除数前面的一个数)。

为什么从2开始?因为所有数都能被1整除。

需要定义一个变量flag来记录某个数是不是质数

内层循环结束后需要重新把flag重置为true

方法一:

importorg.junit.Test;public classDemo {

@Testpublic voidprimeNumberTest() {boolean flag = true;for (int i = 2; i <= 100; i++) {for (int j = 2; j < i; j++) {if (i % j == 0) {//为什么要定义变量flag?//因为只能被1和它本身整除的才是质数,而如果if的判断条件为true//则这个数不是质数。因为进入if判断条件,意味着这个数能被2到i-1的某个数整除

flag = false;

}

}if(flag) {

System.out.print(i+",");

}//因为内层循环会把flag的值设置为false//如果没有下面的语句,flag的值在进入内层循环之后将永远为false

flag = true;

}

}

}

结果:

2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,

方法二:

与方法一相比有所改进的地方,把flag放在外层与内层循环之间,这样就不用每次结束内层循环后去重置flag的值。

importorg.junit.Test;public classDemo {

@Testpublic voidprimeNumberTest() {for (int i = 2; i <= 100; i++) {//因为flag定义在外层循环与内层循环之间,所以每次开始外层循环时flag的值都是true//这样就不需要在内层循环结束时重置flag的值为true了

boolean flag = true;for (int j = 2; j < i; j++) {if (i % j == 0) {//为什么要定义变量flag?//因为只能被1和它本身整除的才是质数,而如果if的判断条件为true//则这个数不是质数。因为进入if判断条件,意味着这个数能被2到i-1的某个数整除

flag = false;

}

}if(flag) {

System.out.print(i+ ",");

}

}

}

}

结果

2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,

方法三:

改进:在if判断语句后面加了break,因为只要有能被2到i-1当中的一个数整除,这个i就不是质数,就没有必要继续循环下去

importorg.junit.Test;public classDemo {

@Testpublic voidprimeNumberTest() {

System.out.println(start);for (int i = 2; i <= 10000; i++) {boolean flag = true;for (int j = 2; j

flag= false;break;//这是改进的地方,因为只要有能被2到i-1当中的一个数整除,这个i就不是质数,就没有必要继续循环下去

}

}if(flag) {

System.out.print(i+",");

}

}

}

}

方法四:

改进:把j的取值范围由

importorg.junit.Test;public classDemo {

@Testpublic voidprimeNumberTest() {for (int i = 2; i <= 100; i++) {boolean flag = true;for (int j = 2; j <= Math.sqrt(i); j++) {if (i % j == 0) {

flag= false;break;

}

}if(flag) {

System.out.print(i+ ",");

}

}

}

}

方法四的小改进:

加了一个count,去统计质数的个数

importorg.junit.Test;public classDemo {

@Testpublic voidprimeNumberTest() {int count=0;for (int i = 2; i <= 100; i++) {boolean flag = true;for (int j = 2; j <= Math.sqrt(i); j++) {if (i % j == 0) {

flag= false;break;

}

}if(flag) {

System.out.print(i+ ",");

count++;

}

}

System.out.print("质数个数为:"+count);

}

}

结果:

2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,质数个数为:25

后记:

2020年3月3日 09:45AM 星期二 农历2020年二月初十 上海 晴 温度:12°,比较冷。

java100以内的质数_Java求100以内的质数的四种方法相关推荐

  1. 计算100以内最大质数和求100以内的质数

    #计算100以内最大质数 for n in range(100,1,-1):#如果n==2时则最大质数为2if n==2:print('100以内最大质数为2')#判断是否为偶数if n%2==0:c ...

  2. 用JAVA编写50以内的素数_java求50以内的素数

    java求50以内的素数 [2021-02-01 12:46:22]  简介: python求100内的所有素数的方法:使用判断该数除了1和它本身以外不再有其他因数即可,代码为[i=2 for i i ...

  3. java列出100以内的素数_Java判断100以内的素数

    Loading... Java多重循环控制,判断100以内的素数并打印输出 ```java import java.util.Scanner; public class Prime { public ...

  4. python求10以内的素数_python 求100以内的素数

    看了几天Python语法, 写一个小作业. 看代码 for divisor in range(101): # range(x) 是 0到x-1 的list 数组 if divisor < 3: ...

  5. java字符串为空抛出异常_Java 判断字符串是否为空的四种方法,及效率比较。

    以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s)); 方法二: ...

  6. js习题(求两个数的和的四种方法)

    不推荐使用递归,递归使用太多会导致栈溢出 <!DOCTYPE html> <html lang="en"><head><meta char ...

  7. java中保留两位小数的方法_Java中保留两位小数的四种方法实现实例

    在写程序的时候,有时候可能需要设置小数的位数,那么java中有哪几种保留小数位数的方法呢?本文以两位小数为例给出四种方法. package CodeJava_Leet; import java.mat ...

  8. 求100以内的所有质数(素数)

    求100以内的所有质数(素数): package demo40;/*** 求100之内的素数(质数)* * @author Administrator**/ public class Demo27 { ...

  9. C#求100以内的质数

    //控制台程序 static void Main(string[] args)       {           // 求100以内的质数           for (int i = 2; i & ...

最新文章

  1. 【转载】【贪心】各种覆盖问题
  2. 翻译:XtraDB/InnoDB中的AUTO_INCREMENT处理方式(已提交到MariaDB官方手册)
  3. Kinect学习(六):提取人体关节点数据
  4. python报错 TypeError: an integer is required
  5. 图片日志:泛型的作用/hashset的内部实现/常见运行期异常
  6. 服务器数据缓存文件实现,跨域与缓存
  7. python面试题~反射,元类,单例
  8. 01-09 Linux三剑客-awk
  9. Linux不重启Tomcat清空catalina.out日志的几种方法
  10. 对于C# 中事件的参数(object sender, EventArgs e)
  11. 时间操作(JavaScript版)—根据不同区时显示相应的时间
  12. python文本分类评价指标 top1如何计算_推荐算法评价指标
  13. html中不支持什么元素,HTML中不支持静态Expando的元素的问题
  14. 通俗易懂理解URI和URL的区别
  15. 通过WIFI,访问一个网站
  16. java运行html代码,java代码运行html
  17. zuul - 微服务(十三)
  18. 百度没有柳传志,联想没有李彦宏
  19. js获取服务器时间,并以北京时区显示
  20. ps计算机海报设计,海报设计(ps标准平面海报设计尺寸一般多大)

热门文章

  1. java string 转码问题_Java字符串转码
  2. 英特尔 6 代以后 CPU 无法安装 Win7 系统解决方案
  3. CTF 流量包相关-流量分析(1)
  4. Django对接支付宝实现支付宝充值金币功能示例
  5. 毕业三年,从P5到P7
  6. Illustrator 教程:如何在 Illustrator 中添加图像?
  7. 芯动联科冲刺科创板:年营收1.7亿 北方电子院与中城创投是股东
  8. 神经网络算法实战——根据姓名判断性别
  9. 王垠:机器与人类视觉能力的差距(2)
  10. Linux划词翻译工具(有道网页版翻译)