`
zqynux
  • 浏览: 36373 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

素数统计.

阅读更多

  这几天围着素数统计这一题就把我搞蒙了.. 题目是这样的: 输入一个整数n, 输出小于等于n的素数个数..

  刚开始, 觉得题目挺容易的,, 马上写了一个程序出来, 测试了一下, 结果没错.. 急急忙忙的就提交了,, 后来再把题目仔细看了看,, n的范围是1~二百万.. 时间要求时1s. 我自信的敲入了两百万.. 结果十分钟才把结果蹦出来... 我这么没用啊,,, 时间要求1s,, 我这里是10*60s...

  忽然看到内存的限制,, 这题是128M, 别的题目都是32M.. 我就想怎么利用这些内存呢~? 蠢主意马上出来了, 把1到两百万之间所有的素数都放在一个数组里,, 不就得了..然后再循环比较程序的效率不需要1毫秒就可以执行完的~! 马上行动. 用刚刚的程序生成了一个数组. 然后加几行代码.. KO了~!

  哈哈,, 感觉有点自豪, 但是毕竟没用到任何算法所以又感觉不怎么滴的.

  后来看到一幅图:

   

  就是上面这幅图,, 忽然来了灵感,, 写了好几次, 终于能够把执行时间控制在180~190毫秒以内了..(其实按现实生活中的时间衡量程序是不好的, 因为每个机子的运算能力都不同.. 这里就没考虑那么多.) 后来在网上看到了几个, 竟然能够把时间控制在110~130毫秒之间.. 接下来一个更夸张, 是我爸在网上弄到的一个, 天哪.. 直接把时间压缩到了60~70毫秒.. 高峰时期有一次15毫秒(也不是什么高峰时期, 就是一次偶然执行..把我彻底吓到了... 这网上的人一个比一个厉害..)

  之前(日志今天中午11点写的, 现在22点45.)我把那个程序再度修改一次,, 天哪,, 惊讶~! 时间缩小到了40几毫秒~! 对自己赞一个... 亲一个~~ 还是不亲自己了(怕晚上睡不着` 就算睡着了也怕梦见怪物. 哎, 还是那句话: 不要迷恋哥, 哥只是个传说..)
  • 大小: 52 KB
0
1
分享到:
评论
2 楼 zqynux 2010-03-16  
kimmking 写道
使用素数测试算法

能够详细的说明一下吗`?
1 楼 kimmking 2010-03-16  
使用素数测试算法

相关推荐

    一亿以内的素数表.zip

    例如,可以找出最大的素数,或者统计一定区间内的素数数量。 在数据科学和分析中,素数表可以用于各种用途,如密码学中的RSA加密算法就是基于大素数的性质,或者在统计学中,研究素数分布可以帮助我们理解自然数的...

    一定范围内的质数统计

    标题中的“一定范围内的质数统计”指的是计算一个指定区间内所有质数的数量。质数是大于1且除了1和它本身没有其他正因数的自然数,如2、3、5、7等。在数学中,质数的统计是一个基础而重要的问题,尤其在密码学、...

    Matlab在数论研究中的应用——用Matlab验证哥德巴赫猜想与孪生素数猜想.zip

    这个猜想同样尚未被证明,但Matlab可以用来寻找大量孪生素数实例,通过编程找出所有相差2的素数对,统计其数量,分析其分布,从而为理解这个猜想提供数据支持。 在“Matlab在数论研究中的应用——用Matlab验证...

    随机数+素数。随机生成n个数,并以列表形式输出,再输出其中的素数。.py

    随机数+素数。随机生成n个数,并以列表形式输出,再输出其中的素数。.py

    统计素数并求和.zip

    "统计素数并求和"这个主题聚焦于一个经典的算法问题,即如何找出一定范围内的所有素数,并计算它们的总和。素数是大于1且除了1和它自身没有其他正因数的自然数,例如2、3、5、7、11等。在这个问题中,我们不仅要找出...

    动态规划求素数.

    在计算机科学与数学领域,素数(或称质数)是指仅能被1和自身整除的大于1的自然数。对于某些应用场景,例如密码学中的RSA算法,需要快速高效地生成或识别大范围内的素数。传统的方法如试除法等效率较低,尤其是在...

    华为机试华为OD机试算法题Python源码(41道).zip

    分别统计出包含英文字母、空格、数字和其它字符的个数.py,数据分类处理.py,数字颠倒.py,素数伴侣.py,提取不重复的整数.py,统计每个月兔子的总数.py,图片整理.py,整数与IP地址间的转换.py,质数因子.py,字串的连接最长...

    java统计素数并求和.md

    统计素数并求和

    VC++MFC制作的可视化素数统计器(完整版)

    **VC++ MFC 可视化素数统计器详解** MFC(Microsoft Foundation Classes)是微软为Windows平台开发应用程序提供的一套C++类库,它基于面向对象编程思想,简化了Windows API的使用,使开发者能更高效地构建用户界面...

    统计素数并求和——C语言代码

    本项目涉及的是一个C语言程序,用于统计指定范围内的素数并计算它们的和。C语言是一种基础的、面向过程的编程语言,常用于教学和系统编程。Dev-C++是一个集成开发环境,适合初学者用来编写和运行C/C++程序。 在这个...

    matlab数理统计和数据分析及优化求解:39 扩展参考:matlab寻找素数.zip

    本资源"matlab数理统计和数据分析及优化求解:39 扩展参考:matlab寻找素数.zip"似乎提供了一个关于使用MATLAB寻找素数的案例。素数是指大于1且仅能被1和自身整除的自然数,如2、3、5、7等。以下将详细介绍如何在...

    求出10万以内的所有素数,并输出到 一个文本文件中,每行文本只包含一个素数数据;然后再判断这些素数中哪些是由素数拼接而成的,全部打印出来,并统计个数。

    1. 编写程序求出10万以内的所有素数,并将这些素数输出到 一个文本文件中,每行文本只包含一个素数数据。 2. 编写程序求出10万以内的所有素数,然后再判断这些素数中 ... 拼接素数全部打印出来,并统计个数。

    筛选法和大素数模板快速统计素数个数并输出幸运数字

    本篇文章将详细讲解如何利用筛选法(埃拉托斯特尼筛法)和大素数模板这两种方法快速统计素数,并在1亿以内找出所有的幸运数字。 筛选法,又称埃拉托斯特尼筛法,是一种用于寻找小于给定数的所有素数的经典算法。该...

    统计素数并求和 C语言.docx

    在C语言中,统计素数并求和是一个基础但有趣的编程任务。这个程序的主要目标是找到用户指定范围内所有的素数,并计算它们的总和。素数是指大于1且只有1和其本身两个正因数的自然数。在这个程序中,我们使用了两个...

    C#小程序(30个)

    c#.net常用函数和方法集.txt C#对注册表的操作.txt choosesubject.txt n个数排序.txt ...词频统计.txt 身份验证.txt 输出图形.txt 输出素数.txt 输出随机数.txt 递归方法求阶乘字符串反转.txt 验证概率.txt

    Leetcode 计数质数.sln

    LeetCode 204的题目是“计数质数”(Count Primes),要求统计所有小于非负整数n的质数的数量。解决这个问题的关键是高效地识别质数,并减少不必要的重复检查。在C#中,一个常见的解决方案是使用埃拉托斯特尼筛法...

    一个用C语言编写的程序,用于统计素数并求和.pdf

    在这个C语言程序中,主要涉及了两个核心概念:素数判断和循环结构。首先,我们来看一下素数的定义:素数是大于1且除了1和它自身外没有其他正因数的自然数。程序通过`isPrime`函数来判断一个数是否为素数。 `isPrime...

    两个整数之间的素数统计并进行升序降序排列

    两个整数之间的素数统计并进行升序降序排列 listBox1.Items.Clear(); if (radioButton1.Checked == true) { for (i = start; i ; i++) { b = true; for (j = 2; j ; j++) { if (i % j == 0) { b = false...

    两百万的素数(质数)

    - **随机数生成**:素数在生成高质量的伪随机数序列方面也有重要作用,这对于模拟实验、统计分析等领域极为关键。 - **散列表**:在设计高效的散列函数时,选择合适的素数作为表的大小能够显著降低发生冲突的概率...

Global site tag (gtag.js) - Google Analytics