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 |
|