本页主题: 休闲一下: 用regex判断质数 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

galilette
级别: 嘉宾


精华: 30
发帖: 2139
威望: 1382 点
金钱: 0 静电币
支持度: 0 点
在线时间:3012(小时)
注册时间:2002-05-01
最后登录:2019-03-12

 休闲一下: 用regex判断质数

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
Posted: 2007-05-28 15:00 | [楼 主]
Eve_okay
级别: 论坛版主


精华: 2
发帖: 1278
威望: 478 点
金钱: 290 静电币
支持度: 11884 点
在线时间:133(小时)
注册时间:2004-03-06
最后登录:2018-10-12

 

质数的概念都忘了。。。。
perl的正则表达式,终于见识了一把:)
Posted: 2007-05-29 21:31 | 1 楼
帖子浏览记录 版块浏览记录
狗狗静电BBS - wwW.DoGGiEhoMe.CoM » 电脑全方位 Computer Guide

沪ICP备05008186号
Powered by PHPWind Styled by MagiColor