素数统计.

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

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

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

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

  后来看到一幅图:

[img]http://dl.iteye.com/upload/attachment/218359/13562fe1-3f45-3624-b51c-93975f72443a.jpg[/img]

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

  之前(日志今天中午11点写的, 现在22点45.)我把那个程序再度修改一次,, 天哪,, 惊讶~! 时间缩小到了40几毫秒~! 对自己赞一个... 亲一个~~ 还是不亲自己了(怕晚上睡不着` 就算睡着了也怕梦见怪物. 哎, 还是那句话: 不要迷恋哥, 哥只是个传说..)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值