Решение на Генератори от Габриела Цанова

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

Към профила на Габриела Цанова

Резултати

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

Код

def is_prime(number):
return all([number % div for div in range(2, number)])
def primes():
number = 2
while True:
if is_prime(number):
yield number
number += 1
def semiprimes():
yield 4
number = 6
while True:
for factor in range(2, number):
if is_prime(factor):
if number % factor:
continue
quotient = number // factor
if is_prime(quotient):
yield number
break
number += 1

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

....
----------------------------------------------------------------------
Ran 4 tests in 0.953s

OK

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

Габриела обнови решението на 03.05.2012 00:24 (преди почти 12 години)

+def is_prime(number):
+ return all([number % div for div in range(2, number)])
+
+def primes():
+ number = 2
+ while True:
+ if is_prime(number):
+ yield number
+ number += 1
+
+def semiprimes():
+ yield 4
+ number = 6
+ while True:
+ for factor in range(2, number):
+ if is_prime(factor):
+ if number % factor:
+ continue
+ quotient = number // factor
+ if is_prime(quotient):
+ yield number
+ break
+ number += 1