Решение на Генератори от Николай Георгиев

Обратно към всички решения

Към профила на Николай Георгиев

Резултати

  • 0 точки от тестове
  • 0 бонус точки
  • 0 точки общо
  • 0 успешни тест(а)
  • 0 неуспешни тест(а)

Код

def primes():
number = 2
while True:
if all([number % divisor for divisor in range(2, number)]):
yield number
number += 1
def gen_wrapper(cmp):
class Wrapper(object):
def __init__(self, value): self.value = value
def __le__(self, obj): return self.value => obj.value
return Wrapper
def semiprimes():
heap = list()
n = 0
while True:
p1 = primes()
p2 = primes()
w1 = gen_wrapper(next(p1))
w2 = gen_wrapper(next(p2))
heap.append(p1 * p2)
n += 1
if n < 2:
continue
yield heap.pop()

Лог от изпълнението

Traceback (most recent call last):
  File "/tmp/test20120627-11891-1x3r3mf", line 2032, in <module>
    PrimesTest.main()
  File "/data/rails/pyfmi-2012/releases/20120501152555/python/homework.py", line 27, in main
    rude.solution = module or imp.load_source('solution', sys.argv[1])
  File "/tmp/solution20120627-11891-x8ylk9", line 11
    def __le__(self, obj): return self.value => obj.value
                                             ^
SyntaxError: invalid syntax

История (1 версия и 0 коментара)

Николай обнови решението на 03.05.2012 18:57 (преди над 8 години)

+def primes():
+ number = 2
+ while True:
+ if all([number % divisor for divisor in range(2, number)]):
+ yield number
+ number += 1
+
+def gen_wrapper(cmp):
+ class Wrapper(object):
+ def __init__(self, value): self.value = value
+ def __le__(self, obj): return self.value => obj.value
+ return Wrapper
+
+def semiprimes():
+ heap = list()
+ n = 0
+ while True:
+ p1 = primes()
+ p2 = primes()
+ w1 = gen_wrapper(next(p1))
+ w2 = gen_wrapper(next(p2))
+ heap.append(p1 * p2)
+ n += 1
+ if n < 2:
+ continue
+ yield heap.pop()