Решение на Генератори от Антония Пепелянкова

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

Към профила на Антония Пепелянкова

Резултати

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

Код

def primes():
for n in range(2, 1000):
for x in range(2, n):
if n % x == 0:
break
else:
yield n
def semiprimes():
sp_set = {x * y for x in iter(primes()) for y in iter(primes())}
return (sp for sp in sorted(sp_set))

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

....
----------------------------------------------------------------------
Ran 4 tests in 6.259s

OK

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

Антония обнови решението на 02.05.2012 23:55 (преди почти 12 години)

+def primes():
+ for n in range(2, 1000):
+ for x in range(2, n):
+ if n % x == 0:
+ break
+ else:
+ yield n
+
+def semiprimes():
+ sp_set = {x * y for x in iter(primes()) for y in iter(primes())}
+ return (sp for sp in sorted(sp_set))