Skip to content

Instantly share code, notes, and snippets.

@bobmurder
Created November 29, 2012 08:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bobmurder/4167490 to your computer and use it in GitHub Desktop.
Save bobmurder/4167490 to your computer and use it in GitHub Desktop.
import re
import time
comp_re = re.compile(r'^1?$|^(11+?)\1+$')
def regex_prime(args):
primes = [2]
for n in xrange(*args):
if not re.match(comp_re, str(1) * n):
primes.append(n)
return primes
def trial_div(args):
primes = [2]
for n in range(*args):
prime = True
for p in primes:
if not p*p <= n:
break
if n % p == 0:
prime = False
if prime:
primes.append(n)
return primes
def prime_time(f, args, typ):
then = time.time()
nums = f(args)
now = time.time()
return ' '.join(["%s took" % typ, str(now - then)[:8], "seconds"])
if __name__ == '__main__':
import sys
if len(sys.argv) > 1:
limit = int(sys.argv[1]) + 1
else:
limit = 1001
args = (3, limit, 2)
print prime_time(regex_prime, args, 'regex')
print prime_time(trial_div, args, 'trial div')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment