Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- import socket
- from math import sqrt
- def is_prime(num):
- if num < 2:
- return True
- for i in range(2, int(sqrt(num)) + 1):
- #time.sleep(0.2)
- if not num % i:
- return False
- return True
- def co_is_prime(num):
- if num < 2:
- return True
- for i in range(2, int(sqrt(num)) + 1):
- # yield from co_sleep(0.2)
- if not num % i:
- return False
- yield
- return True
- def all_matches(iterable, predicate):
- for item in iterable:
- if predicate(item):
- print(item)
- break
- yield
- def co_all_matches(iterable, predicate):
- for item in iterable:
- if (yield from predicate(item)):
- print(item)
- break
- yield
- def co_sleep(delay):
- start = time.time()
- expire = start + delay
- while True:
- now = time.time()
- if now >= expire:
- break
- yield
- poll= []
- intervals = (
- (104, 200),
- (145, 200),
- (206, 260),
- (1204, 2000)
- )
- for interval in intervals:
- beg, end = interval
- gen = co_all_matches(range(beg, end), co_is_prime)
- poll.append(gen)
- start = time.time()
- while True:
- try:
- for gen in poll:
- try:
- next(gen)
- except StopIteration as err:
- poll.remove(gen)
- if not poll:
- raise err
- except StopIteration:
- break
- end = time.time()
- print('Total time: %0.2f' % (end - start))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement