查看完整版本: [-- 休闲一下: 用regex判断质数 --]

狗狗静电BBS - wwW.DoGGiEhoMe.CoM -> 电脑全方位 Computer Guide -> 休闲一下: 用regex判断质数 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

galilette 2007-05-28 15:00
regular expression (regex, 正则表达)通常是用来匹配文本的, 不过这个周末看到一个
很另类的用法, 如题.

这里是一条 perl one-liner:
perl -wle 'print "Prime" if (1 x shift) !~ /^1?$|^(11+?)\1+$/' [number]
在[number]的位置放一个数, 这条语句就能判断这个数是不是质数

notes:
1) 快速生成素数的办法: 2^p - 1, p本身是素数.
e.g., 2^13-1 可以用 `dc -e '2 13^1-p'`代替
2) 我机器上perl到 2^15就会segfault

ref:
http://montreal.pm.org/tech/neil_kandalgaonkar.shtml

Eve_okay 2007-05-29 21:31
质数的概念都忘了。。。。
perl的正则表达式,终于见识了一把:)

maxerr 2008-06-27 20:51
用户被禁言,该主题自动屏蔽!


查看完整版本: [-- 休闲一下: 用regex判断质数 --] [-- top --]



Powered by PHPWind v6.0 Code © 2003-05 PHPWind
Gzip enabled

You can contact us