Решение на Генератори от Веселина Кръстева

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

Към профила на Веселина Кръстева

Резултати

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

Код

def is_prime(number):
for i in range(2, number // 2 + 1):
if number % i == 0:
return False
return True
def primes():
number = 2
yield number
number += 1
while True:
if is_prime(number):
yield number
number += 2
def semiprimes():
number = 4
while True:
for i in range(2, number // 2 + 1):
if number % i == 0:
check = number // i
if is_prime(check):
yield number
break
number += 1

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

....
----------------------------------------------------------------------
Ran 4 tests in 0.008s

OK

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

Веселина обнови решението на 01.05.2012 16:07 (преди над 12 години)

+def is_prime(number):
+ for i in range(2, number // 2 + 1):
+ if number % i == 0:
+ return False
+ return True
+
+def primes():
+ number = 2
+ yield number
+ number += 1
+ while True:
+ if is_prime(number):
+ yield number
+ number += 2
+
+def semiprimes():
+ number = 4
+ while True:
+ for i in range(2, number // 2 + 1):
+ if number % i == 0:
+ check = number // i
+ if is_prime(check):
+ yield number
+ break
+ number += 1
+
+