求质数问题

问题描述:

试编写一个程序,找出前N(如200)个质数。如果没有进一步要求,这不是难题。但在此希望从所知的、使用除法的方法中,用最快的办法来编写程序。

要是没有后面的要求,这道题真的是简单的不能再简单的了,但是有了后面的要求之后就不是简单的几个循环就能解决的了,要对质数的性质进行分析之后,可以发现所有2和3的倍数都不是质数。与此同时,在用除的方法找质数的时候,通过分析会发现最好的方式是用比sqrt(i)小的质数去除。具体的解决方法如下:


我写的还是很蹩脚,存放已经求出的质数的数组,指定了大小,所以只能求一定数量的质数,没有动态分配数组大小。具体实现效果如下:


我求了前20个质数,当然这样的简便的思想我还是看了问题的说明才明白的,不得不佩服这样的分析真是能将程序简化很多,这也告诉我遇到事情要思考,不能死命的做。当然啦,也要多读书才行啊。

看了答案,虽然思路差不多,但是从代码的行数来看,我还是完败啊,只能继续加油。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值