Advertisement
Guest User

Untitled

a guest
Feb 15th, 2014
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1. from math import sqrt
  2. import time
  3.  
  4. def mrange(start, stop, step=1):
  5.     i = start
  6.     while i < stop:
  7.         yield i
  8.         i += step
  9.  
  10. def is_prime(n):
  11.     return all(n % i for i in mrange(3, int(sqrt(n)) + 1, 2))
  12.  
  13. primes = [3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251]
  14.  
  15.  
  16. p = 127
  17. q = 193
  18.  
  19. n = p*q
  20.  
  21.  
  22. def loop_nolist():
  23.     for x in range(3, 256, 2):
  24.         if( is_prime(x) and (n/x) < 256 and is_prime(n/x) and n == (x * (n/x)) ):
  25.             ## print("n=" + str(n) + "\tp=" + str(x) + "\tq=" + str(n/x))
  26.             break
  27.  
  28. def loop_list():
  29.     for x in primes:
  30.         if( (n/x) < 256 and (n/x) in primes and n == (x * (n/x)) ):
  31.             ## print("n=" + str(n) + "\tp=" + str(x) + "\tq=" + str(n/x))
  32.             break
  33.  
  34.  
  35. times = []
  36. for x in range(0, 100):
  37.     oTime = time.time();
  38.     loop_nolist()
  39.     times.append(time.time() - oTime)
  40.  
  41. print( "Average time for scanning without list\t" + str( sum(times)/len(times) ) )
  42.  
  43. times = []
  44. for x in range(0, 100):
  45.     oTime = time.time();
  46.     loop_list()
  47.     times.append(time.time() - oTime)
  48.  
  49. print( "Average time for scanning with list\t" + str( sum(times)/len(times) ) )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement