2008脚本大赛PowerShell高级组Event 6解题及分析

中文题目: http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/chs/aevent6.mspx

英文解题: http://www.microsoft.com/technet/scriptcenter/funzone/games/solutions08/apssol06.mspx

题目就是打印200以内的所有素数, 素数的定义大家都知道. 蛮力法很慢, 对于数字n, 我们确定从 2到n-1都不能被整除. 而我选择了比上述方法简单一点的技巧, 测试2到根号n之间的所有数字, 这样我们可以少计算很多次. 最好的办法是每找到一个素数就记录下来, 对于数字n来说, 如果所有小于n的素数都不能整除, 那么这个数字就是素数. 最后一种方法有点像动态规划. 我也懒得写, 旧代码直接拿来用的:

$stop   =   200 ;
: next   foreach  ( $i  in  2 .. $stop )
{
   
for  ( $c   =   2 $c   - le [math] :: Sqrt ( $i );  $c ++ )
   {
      
if  ( $i   %   $c   - eq  0 ) {  continue   next }
   }
   
" $i "
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值