素数 c语言 时间少,C语言判断素数怎么优化时间,1000000以内,不用代码,指点一下就好...
匿名用户
1级
2016-09-04 回答
基本思想
用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有: 1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1不是素数,去掉。剩下的数中2最小,是素数,去掉2的倍数,余下的数是:
3 5 7 9 11 13 15 17 19 21 23 25 27 29
剩下的数中3最小,是素数,去掉3的倍数,如此下去直到所有的数都被筛完,求出的素数为: 2 3 5 7 11 13 17 19 23 29
C语言实现
1、算法一:令A为素数,则A*N(N>1;N为自然数)都不是素数。
#define range 2000 bool IsPrime[range+1];
//set函数确定i是否为素数,结果储存在IsPrime[i]中,此函数在DEV C++中测试通过 void set(bool IsPrime[]) { int i,j;
for(i=0;i<=range;++i) IsPrime[i]=true;
IsPrime[0]=IsPrime[1]=false; for(i=2;i<=range;++i) {
if(IsPrime[i]) {
for(j=2*i;j<=range;j+=i) IsPrime[j]=false; } } } 2、
说明:解决这个问题的诀窍是如何安排删除的次序,使得每一个非质数都只被删除一次。 中学时学过一个因式分解定理,他说任何一个非质(合)数都可以分解成质数的连乘积。例如,16=4^2,18=2 * 3^2,
691488=2^5 * 3^2 * 7^4等。如果把因式分解中最小质数写在最左边,有16=4^2,18=2*9,691488=2^5 * 21609,;换句话说,把合数N写成N=p^k * q,此时q当然是大于p的,因为p是因式分解中最小的质数。由于因式分解的唯一性,任何一个合数N,写成N=p^k * q;的方式也是唯一的。 由于q>=p的关系,因此在删除非质数时,如果已知p是质数,可以先删除P^2,p^3,p^4,... ,再删除pq,p^2*q,p^3*q,...,(q是比p大而没有被删除的数),一直到pq>N为止。
因为每个非质数都只被删除一次,可想而知,这个程序的速度一定相当快。依据Gries与Misra的文章,线性的时间,也就是与N成正比的时间就足够了(此时要找出2N的质数)。
素数 c语言 时间少,C语言判断素数怎么优化时间,1000000以内,不用代码,指点一下就好...相关推荐
- 费尔马小定理素数java_利用费马小定理判断素数
今天听了ljss神犇的数论课,顿时感觉----我真的是太弱啦! 我只能稍微写一下我能听懂的部分orz 那么这就是今天我为数不多能听懂一点的之一......QAQ 首先先介绍今天的主角:费马小定理 -- ...
- python求最大素数_Python实现求最大公约数及判断素数的方法
本文实例讲述了Python实现求最大公约数及判断素数的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python def showMaxFactor(num): cou ...
- C语言判断素数方法之试除法
素数又称质数,指的是一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数,如2,3,5,7,11,13,17-.接下来让我们以打印区间[a,b]内所有素数为目标来探究一种判断素数 ...
- 背口诀14天精通c语言pdf下载,C语言必背18个经典程序
C语言必背18个经典程序 1./*输出9*9口诀.共9行9列,i控制行,j控制列.*/ #include "stdio.h" main() {int i,j,result; for ...
- c语言sort函数_C语言经典面试题目及答案详解(二)
接着上次来说,C语言经典面试题目及答案详解(一)当中大部分是一些概念和理解的东西 ,今天说一说实践操作,有关c的经典程序. 1.输出9*9口诀.共9行9列,i控制行,j控制列. #include 2. ...
- 判断素数及其算法优化
首先,我们要清楚什么是素数? 素数:又称质数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数. 根据素数的定义,我们可以写 ...
- php判断质数,php如何判断是否为素数?判断素数的三种方法(代码示例)
本篇文章给大家带来的内容是介绍php如何判断是否为素数?判断素数的三种方法(代码示例).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 什么是素数? 质数又称素数.一个大于1的自然数 ...
- ACMNO.23 C语言-素数判定 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime
题目描述 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息. 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 样例输入 97 样例输出 prime 来源/ ...
- java 语言如何判断素数_C语言实验之判断素数(循环结构java)方法讲解
C语言实验之判断素数(循环结构java)方法讲解 Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prim ...
最新文章
- hdu 1306(字符串匹配)
- iOS - 获取安装所有App的Bundle ID
- tcl mysql_MySQL·TCL语言
- 【Clickhouse】Clickhouse PRIMARY KEY, CONSTRAINT, identifier, column declaration, INDEX
- 百度地图 json 区域 数据_获取百度地图可视区域范围的数据
- 2021年校招软件测试工程师经典面试题,月薪15K你需要掌握哪些知识点?
- 常用idea快捷键大全
- YOLO V2论文理解
- 抓包与发流软件与网络诊断
- 多线程_18_并发_同步_快乐影院_快乐火车票
- 快速搭建pgadmin4环境
- 如何设置Mosek的最大迭代次数?
- SpringBoot-Bean作用域
- 移动混合开发框架+Android原生模块化/组件化
- 用学校邮箱使用微软OneDrive云存储空间5120G
- Java-购物车实践与应用
- Python学习笔记(一)——Anaconda安装与配置(windows)
- [Render] Arm Graphics Analyzer 用户指南 [4] - 分析你的捕获
- Vins_mono重力对齐理解
- 天龙单机虚拟服务器,最新2021新天龙八部单机版一键端 虚拟机安装带假人天龙八部网单游戏...
热门文章
- Composer学习之————Ubuntu14.04下安装Composer
- Crawler - 如何爬取列表后进行文章的爬取
- mysql优化--叶金荣老师讲座笔记
- 30岁之前需要知道的10个人生底线,你知道几个?
- 页面增加html,为静态页面HTML增加session功能
- mycat mysql ha 方案_7、基于 HA 机制的 Mycat 高可用--mycat
- mysql distinct两列_正在检索两列,并对MySQL中的每列应用“distinct”
- [转载] java程序员快速学c++
- ping/pong模式_PING的完整形式是什么?
- scala运算符_Scala的所有符号运算符是什么意思?