C/C++查找一定范围内的素数(筛法)
本文转自于:http://dalu.blogbus.com/logs/37977984.html
由于一个合数总是可以分解成若干个质数的乘积,那么如果把质数(最初只知道2是质数)的倍数都去掉,那么剩下的就是质数了。
例如要查找100以内的质数,首先2是质数,把2的倍数去掉;此时3没有被去掉,可认为是质数,所以把3的倍数去掉;再到5,再到7,7之后呢,因为8,9,10刚才都被去掉了,而100以内的任意合数肯定都有一个因子小于10(100的开方),所以,去掉,2,3,5,7的倍数后剩下的都是质数了。
用程序可以这样解决,引入布尔类型数组a[i],如果i是质数,a[i]=true,否则a[i]=false。那么划掉i可以表示成a[i]=false。
//找出n以内质数
void Sieve(int n){bool[] a = new bool[n+1];for (int i = 2; i <= n; i++) a[i] = true; for (int i = 2; i <= Math.Sqrt(n); i++){if (a[i])for (int j = i; j*i <= n; j++) a[j * i] = false;}for (int i = 0; i <= n; i++){if (a[i])Console.Write("{0},",i.ToString());}}
如果去掉最后一个用来显示结果的循环的话,运行Sieve(10000000)只要1秒多。
转载于:https://www.cnblogs.com/renyuan/p/3451738.html
C/C++查找一定范围内的素数(筛法)相关推荐
- kotlin 查找id_Kotlin程序查找给定范围内的素数
kotlin 查找id A prime number is a natural number that is greater than 1 and cannot be formed by multip ...
- 快速查找计算9百万万亿整数内全部素数(质数)的C++代码
用素数筛查找小于等于某个给定整数的全部素数,是一种较为高效的方法,具体的原理网上很多,这里就不赘述了. 但即使都是运用的素数筛原理,不同的算法设计,也可以带来巨大的效率差异.最近从网上搜索学习了相关的 ...
- Python 计算从1-N(N可以任何数)内的素数(并行计算、多线程优化计算)
Python 计算从1-N(N可以任何数)内的素数(算法优化.并行计算.多线程优化计算) 1.项目介绍 1.1研究背景 1.2题目介绍 2.项目优化过程 2.1 源代码 2.2 优化1 - 数理的角度 ...
- ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。
题目描述 用筛法求之N内的素数. 输入 N 输出 0-N的素数 样例输入 100 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 7 ...
- python输出所有素数_Python实现输出某区间范围内全部素数的方法
本文实例讲述了Python实现输出某区间范围内全部素数的方法.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- # 简述:区间范围101-200 # 要求:判断这个区间 ...
- 使用simple transformation查找xml file内某个节点的attribute是否存在指定value
Created by Jerry Wang on Jun 05, 2014 下列report实现通过simple transformation查找xml 文件内下列路径的节点ds其attribute ...
- JAVA-基础(查找文件夹内文件)
JAVA-基础(查找文件夹内文件) 1.目的? 查找指定文件夹内的文件.以查询.txt结尾的文件为例. 2.分析? 目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录. 遍历目录时,获取的子文件 ...
- javascript 显示一定范围内的素数(质数)
素数又称质数,是大于1的自然数,并且只有1和它本身两个因数. 具体实现代码如下: 运行代码 <!DOCTYPE HTML> <html> <head lang=" ...
- java求2到100内的素数_java学习日记-基础-列出2~100内的素数
素数的概念:一个整数如果只能整除1和它本身,那么这个整数就是一个素数 方法一:素数是除去能被2整除.3整除.5整除.7整除的整数,但包含2,3,5,7 public classSushu {publi ...
最新文章
- git config命令使用
- 反弹模型(bounce model)----adot, H, Hdot变化图
- Java架构-面试前必须知道的MySQL命令【explain】
- 利用excel办公软件快速拼凑sql语句
- 分治法:快速排序,3种划分方式,随机化快排,快排快,还是归并排序快?
- matlab中m文件的作用,M文件主要包含()_matlab中m文件的好处
- python 爬虫-beautifulsoup4
- IROS 2017上,这些厂商将会给我们展示什么样的黑科技?
- vue watch监听对象
- Theano 中文文档 0.9 - 7.2.4 条件
- 基于jquery.fixedheadertable 表格插件左侧固定 对齐
- php ajax session,Ajax处理用户session失效
- centos 上安装bugzilla 详解
- moonlight不显示鼠标指针
- 【排序】动画演示10大排序算法
- 基于二叉链表的二叉树最长路径的求解
- 条码打印软件如何制作二维码
- Netty实战《原理》
- 常见电脑蓝屏代码以及解决办法
- 两对等位基因控制一对相对性状的规律(基因互作)