Regular expression that checks for primes.

This via

Noulakaz

It might well be, but it’s a hack as it bombs at larger numbers:

irb(main):001:0> def isp(n)
irb(main):002:1> (“1” * n) !~ /^1?$|^(11+?)\1+$/
irb(main):003:1> end
=> nil
irb(main):004:0> isp(55)
=> false
irb(main):005:0> isp(57)
=> false
irb(main):006:0> isp(101)
=> true
irb(main):007:0> isp(100000001)
RegexpError: Stack overflow in regexp matcher: /^1?$|^(11+?)\1+$/
from (irb):2:in `isp’
from (irb):7
from :0
irb(main):001:0> def isp(n)irb(main):002:1> (“1” * n) !~ /^1?$|^(11+?)\1+$/irb(main):003:1> end=> nilirb(main):004:0> isp(55)=> falseirb(main):005:0> isp(57)=> falseirb(main):006:0> isp(101)=> trueirb(main):007:0> isp(100000001)RegexpError: Stack overflow in regexp matcher: /^1?$|^(11+?)\1+$/        from (irb):2:in `isp’        from (irb):7        from :0

Yes regular expressions are cool and all but they are hacks.

This entry was posted in Programming. Bookmark the permalink.