在c#中查找素数

For*_*esp 2 .net c#

在我开始询问之前,我会告诉我做了什么.有一个问题,问题3,你可以去那个链接,看看它需要什么.为了解决它,我刚写了一个函数来查找该数字是否为素数.简单.

但是,问题10要求所有素数的总和低于200万(2000000),我通过简单地检查所有数字直到2m解决这个问题并查看它的素数然后将其添加到某个变量.(如果它的素数)

但是,这样做需要花费很多时间.而且这么多时间我的意思是小时.很多小时.所以我不认为我的答案是正确的:)

我在问这里之前用Google搜索了问题,但我没有找到c#.我能找到的最接近的是java和fortran,我似乎无法实现算法.

我在这里,问这个.你怎么能这样做?检查每个数字直到2米并注意它是否它的素数不是快速的方式.(这个问题应该在1分钟内计算(问题我的意思是,不是你lol)afaik)

谢谢.

Ben*_*igt 9

你可以(应该)使用筛子,而不是单独检查每个数字的素数.

也许你甚至可以算出筛子立即移除的所有数字的总和......

隐藏在下面的直截了当的解决方案:

http://ideone.com/55j4F

一个稍微快一点的版本(感谢@ Vimvq1987):

http://ideone.com/bxq2h

我相信一个相关的.NET 4.0错误:https://connect.microsoft.com/VisualStudio/feedback/details/674232/jit-optimizer-error-when-loop-controlling-variable-approaches-int-maxvalue