Ивайло обнови решението на 03.05.2012 13:50 (преди над 13 години)
+from math import sqrt
+
+def isPrime(x):
+    for i in range(2,int(sqrt(x)+1)):
+        if not x%i:
+            return False
+    else:
+        return True
+    
+def primes():
+    p=2
+    while True:
+        if isPrime(p):
+            yield p
+        p+=1
+    
+def semiprimes():
+    p=4
+    while True:
+        for i in range(2,int(p/2)+1):
+            if not p%i:
+                    if isPrime(i):
+                        if isPrime(p/i):
+                            yield p
+                            break
+                        else:
+                            break
+                    else:
+                        break
+        p+=1
