Решение на Генератори от Галин Тодоров

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

Към профила на Галин Тодоров

Резултати

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

Код

def primes():
prime_list = []
number = 2
while True:
is_prime = True
for prime in prime_list:
if (number % prime) == 0:
is_prime = False
continue
if is_prime:
yield number
prime_list.append(number)
number += 1
def semiprimes():
prime_list = []
semiprime_list = []
number = 2
while True:
is_prime = True
for prime in prime_list:
if (number % prime) == 0:
is_prime = False
continue
if is_prime:
prime_list.append(number)
for prime in prime_list:
semiprime_list.append(prime * number)
else:
if number in semiprime_list:
yield number
number += 1

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

....
----------------------------------------------------------------------
Ran 4 tests in 0.019s

OK

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

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

+def primes():
+ prime_list = []
+ number = 2
+ while True:
+ is_prime = True
+ for prime in prime_list:
+ if (number % prime) == 0:
+ is_prime = False
+ continue
+ if is_prime:
+ yield number
+ prime_list.append(number)
+ number += 1
+
+
+def semiprimes():
+ prime_list = []
+ semiprime_list = []
+ number = 2
+ while True:
+ is_prime = True
+ for prime in prime_list:
+ if (number % prime) == 0:
+ is_prime = False
+ continue
+ if is_prime:
+ prime_list.append(number)
+ for prime in prime_list:
+ semiprime_list.append(prime * number)
+ else:
+ if number in semiprime_list:
+ yield number
+ number += 1