2016-04-09 1 views
-2

Übernehmen Sie die Verfügbarkeit einer Funktion is_prime. Angenommen, eine Variable n wurde mit einer positiven Ganzzahl verknüpft. Schreiben Sie die Anweisungen, die benötigt werden, um die Summe der ersten n Primzahlen zu berechnen. Die Summe sollte der variablen Summe zugeordnet werden.Python is_prime

Hinweis: is_prime nimmt eine ganze Zahl als Parameter und gibt True zurück, wenn und nur wenn diese ganze Zahl prim ist.

Bisher habe ich:

i=2 
count=0 
total=0 
while (count<n): 
    if(is_prime(i)): 
     total+=1 
     count+=1 
    i+=1 

Wo bin ich das Problem fehlt.

+0

Danke für die Bearbeitung war in Prozess der Bearbeitung, wenn Sie getan haben. – Randy

+0

Sie haben keine Funktion und es kommt nicht zurück ... plus Sie sollten wahrscheinlich hinzufügen 'i'' total + = i' –

+1

Mögliches Duplikat der [isPrime-Funktion für Python-Sprache] (http://stackoverflow.com/questions/ 15285534/isprime-function-for-python-language) –

Antwort

1

Ihre bestehende zu beheben ... fügen Sie einfach i zu total

i=2 
count=0 
total=0 
while (count<n): 
    if(is_prime(i)): 
     total+=i 
     count+=1 
    i+=1 
print total 

Sie Primzahlen es viel besser machen könnte für immer, indem sie einen Generator erhalten

def primes(): 
    for i in itertools.count(1): 
     if is_prime(i): 
      yield i 

dann könnte man n_primes machen, dass ergibt die erste n Primzahlen

def n_primes(n): 
    return [prime for prime,_ in zip(primes(),range(n))] 
schließlich

dann Sie es nur

Summe
print sum(n_primes(N)) 
+0

Danke Joran, ich wusste, dass ich etwas so einfaches übersehe . – Randy