I was reading up on this site [

http://www.noulakaz.net/weblog/
2007/03/18/a-regular-expression-to-check-for-prime-numbers/] of an

interesting way to work out prime numbers using Regular Expression.

However my attempts to use this in Python keep returning none

(obviously no match), however I don't see why, I was under the

impression Python used the same RE system as Perl/Ruby and I know the

convert is producing the correct display of 1's...Any thoughts?

def re_prime(n):

import re

convert = "".join("1" for i in xrange(n))

return re.match("^1?$|^(11+?)\1+$", convert)

print re_prime(2)

Also on a side note the quickest method I have come across as yet is

the following

def prime_numbers(n):

if n < 3: return [2] if n == 2 else []

nroot = int(n ** 0.5) + 1

sieve = range(n + 1)

sieve[1] = 0

for i in xrange(2, nroot):

if sieve[i]:

sieve[i * i: n + 1: i] = [0] * ((n / i - i) + 1)

return [x for x in sieve if x]

Damn clever whoever built this (note sieve will produce a list the

size of your 'n' which is unfortunate)