Chinaunix首页 | 论坛 | 博客
  • 博客访问: 925369
  • 博文数量: 74
  • 博客积分: 10001
  • 博客等级: 上将
  • 技术积分: 2609
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-04 19:54
文章存档

2015年(1)

2009年(2)

2008年(71)

我的朋友

分类: WINDOWS

2008-03-02 20:28:14

中文题目:

英文解题:

题目就是打印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"
}
阅读(1236) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~