笔记

1.素数,前50个数内是素数的数
已知x=2为素数,那么与2成倍数关系的数都不是素数,所以将他们划掉;
将x的值一次增加,只要是倍数,就不是素数。

import java.util.Scanner;public class Main {public static void main(String[] args) {/*构造n以内的素数表1.令x为22.将2x、3x、4x直到ax<n的数标记为非素数3.令x为下一个没有被标记为非素数的数,重复2步;直到所有的数都被已经尝试完毕解决方案如下:构造n以内(不含)的素数表1.创建prime为boolean[n],初始化其所有元素为true,prime[x]为true表示x是素数2.令x=23.如果x是素数,则对于(i=2;x*i<n;++i)令prime[i*x]=false令x++,如果x<n,重复3步,否则结束*/boolean[] isprime = new boolean[50] ;//前100个数,会初始化为falsefor(int i=2;i<isprime.length;++i){isprime[i]=true;}for(int i=2;i<isprime.length;++i){for(int j=2;i*j<isprime.length;j++){if(isprime[i]){isprime[i*j]=false;//将是倍数的数,说明不是素数}}}for(int i=2;i<isprime.length;++i){if(isprime[i]){System.out.print(i+" ");//没有被置为false的说明是素数}}}
}

2.素数,前50个数内是素数的数
判断这个数是否被已知的所有素数整除,且这个数在规定的范围内,若能,则这个数不是素数。

import java.util.Scanner;public class Main {public static void main(String[] args) {int[] primes = new int [50];//判断是否能被已知的且<x的素数整除,能的话,就不是素数primes[0]=2;//已知2是素数int cnt=1;//表示把下一个素数放在素数组里的第一位look:for(int x=3;cnt<50;++x){//求前50个素数for(int i=0;i<cnt;++i){if(x%primes[i]==0)//能被已知的素数整除的话就不是素数,跳到外面的循环去continue look;}//如果是的话,就加入素数组里primes[cnt++]=x;}for(int k:primes){System.out.println(k);}}}

3.最基础的求法

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int[] prime = new int[100];//装素数int n;int cnt=0;n=in.nextInt();here: for(int i=2;i<=n;++i){for(int j=2;j<=Math.sqrt((double)i);++j){//这里有等于if(i%j==0){//说明不是素数{continue  here;}}prime[cnt++]=i;}for(int i=0;i<prime.length;++i){if(prime[i]!=0)System.out.print(prime[i]+" ");}}
}

素数的几种求法(java)相关推荐

  1. 质数(素数)的几种求法

    质数就是只能被1和它本身整除的数.求质数在程序设计和算法中很常见,尤其是在密码学中经常用到质数.最通常的想法就是依据定义来求质数 如求100以内的质数,我们会写出如下的算法: int prime_1( ...

  2. 【算法学习】找素数的几种算法: 简单穷举, 埃氏筛法, 欧氏筛法, 从O(n2)到O(n)

    文章简介 本文记录寻找素数的几种算法, 本文中的O()没有指明默认表示时间复杂度 代码使用Java 目录 文章简介 正文 穷举计数法(判断O(n)) 优化: 布尔+break(判断 小于O(n)) 优 ...

  3. cmd 将文件夹下文件剪切到另外一个文件_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇...

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  4. java调试生命周期,一种基于JAVA的智能合约生命周期的管理方法与流程

    本发明涉及区块链技术,尤其涉及一种基于JAVA的智能合约生命周期的管理方法. 背景技术: 区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交 ...

  5. java 对象创建过程_5种创建Java对象的方式

    在本篇文章中,将介绍5种创建Java对象的方式.类是创建对象的基本模板,接下来将介绍5种不同的方式,利用Java类来实例化Java对象. 1. 使用new关键字 ​ 采用new关键字实例化对象是Jav ...

  6. 计算 java_两种计算Java对象大小的方法(转)

    原文:http://blog.csdn.net/iter_zc/article/details/41822719 另一篇类似文章:http://www.cnblogs.com/magialmoon/p ...

  7. 聊聊JVM(三)两种计算Java对象大小的方法

    普通对象的结构如下,按64位机器的长度计算 1. 对象头(_mark), 8个字节 2. Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节 3. 数据区 4.Padding(内存对齐 ...

  8. javaone_JavaOne 2012:101种改进Java的方法-开发人员参与为何如此重要

    javaone Bruno Souza , Martijn Verburg和Heather Vancura在希尔顿酒店的美国大陆宴会厅4中展示了" 101种改善Java的方法:开发人员为何如 ...

  9. JavaOne 2012:101种改进Java的方法-开发人员参与为何如此重要

    Bruno Souza , Martijn Verburg和Heather Vancura在希尔顿酒店的大陆宴会厅4中展示了" 101种改进Java的方法:开发人员参与为何如此重要" ...

最新文章

  1. 详解 WSUS 部署
  2. kafka报错:Error writing out kafka.log:type=Log,name=LogStartOffset,topic=xx EofException
  3. 活在贫困线之下的开源软件项目——开源的可持续性斗争
  4. XUbuntu20.04开机logo定制,主题修改启动背景
  5. VS2008启动调试,出现“ 已经找到网站 正在等待回应”
  6. Linux常用基本命令总结
  7. 信号处理simulink仿真-DSP系统工具箱
  8. xlsxwriter去掉网格线_python 中 xlsxwriter 模块的使用
  9. logback打印出mybatis sql日志(转载)
  10. 【数据库系统原理】第四章 高级数据库模型:统一建模语言UML、对象定义语言ODL
  11. 用Python处理Excel中的重复行--菜鸟入门
  12. 强化IT能力 中国移动OpenStack玩“大”的
  13. 那些你可能用得上的在线办公神器系列(三)
  14. 天下无云第二步,逐像素图片合成
  15. PLUTO SDR入门系列之二:PlutoSDR拆解
  16. C++调用构造函数的方式
  17. TextRank提取句子的关键词
  18. Micron DDR、Flash型号查询方法
  19. FFmpeg 视频录制 - 视频添加滤镜和编码
  20. 浅析微软大数据平台HDInsight (1)

热门文章

  1. 文本匹配相似度计算---多种距离算法 ,多种相似度计算算法,一看就懂
  2. selenium控制浏览器获取数据(java 版本)
  3. Android-69-音视频开发:AnyChat for Android SDK
  4. 快速使用Vitamio框架播放网络视频
  5. MG本地服务器如何改ip
  6. 图解排序算法及实现——快速排序 (Quick Sort)
  7. Qt QTableWidget的使用方式
  8. [1609.04802] SRGAN中的那些loss
  9. 什么是CDN?怎么搭建?搭建CDN需要什么软件!
  10. linux系统yum 安装postgresql