2017-10-10 5 views
0

Ausgabe: <generator object <genexpr> at 0x00000293AA2F8E60> anstelle der Liste der Primzahlen, die ich versuchte zu erhalten.Liste der Primzahlen - unerwartete Ausgabe

import math 
#here i try to use trial division to validate whether a number is false or not  
def isPrime(n): 
    d = {} 
    u = math.floor(math.sqrt(n)) 
    i = 2 
    while (i <= u): 
     if (n % i == 0): 
      return False 
     i +=1 
     return True 
#here I attempt to find all the prime numbers between 1 and 5000 
print(isPrime(n) for n in range(1,5000)) 
+0

Was passiert, wenn Sie stattdessen 'print (Liste (isPrime (n) für n im Bereich (1,5000))') haben? –

+0

Ist das Python-Code? Vielleicht sollten Sie ein geeignetes Sprach-Tag hinzufügen. –

Antwort

0

denke ich, was Sie versuchen, dies zu tun ist:

import math 
def isPrime(n): 
    u = math.floor(math.sqrt(n)) 
    i = 2 
    while (i <= u): 
     if (n % i == 0): 
      return False 
     i +=1 
    return True 

for n in range(1, 5000): 
    print(isPrime(n)) 
1

Sie einen Generator gebaut, und dann Python gesagt zu drucken, dass Objekt. Das hast du bekommen. Von Ihrer Beschreibung her denke ich, dass Sie ein Listenverständnis haben wollen, das Ihnen eine Liste von Primzahlen gibt.

Versuchen Sie folgendes:

print ([n for n in range(1, 5000) if isPrime(n) ]) 

Beachten Sie, dass die Primzahl ausdrucken möchten, nicht den Rückgabewert von isPrime.