This via
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=> 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):7from :0irb(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.