2017-09-10 10 views
0

プログラムの実行中に、必要な正解が計算されます。 しかし、ifループのreturn関数は、 "None"を返す代わりに必要な応答を返しません。 私はそれを見てみると、私はそれが何かダム私は行方不明だと確信しています。python戻り関数は値を渡しません。

def is_prime(n): 
    #function tocheck if number is prime 
    for i in range(2,n): 
     #print (i) 
     if n%i==0: 
      return False 
    return True 

def gap(g,m,n): 
    #Function to find prime number 
    #pair with prime gap "g" 
    print (is_prime(m),m) 
    print (is_prime(m+g),m+g) 
    if is_prime(m) and is_prime(m+g): 
     print ("This is the right answer : ",[m,g+m]) 
     #value not returning 
     return [m,g+m] 

    elif g+m<n: 
     print("restart with",m+1) 
     gap(g,m+1,n) 

print (gap(8,300,400)) 
+3

インデントを修正してください。あなたのコードは読めません。 –

+0

'elif'では' return'文 'return gap(g、m + 1、n)'を使う必要があります。 – ettanany

+0

'elif'ブロックの最後に' return gap(g、m + 1、n) 'を追加してください。 – MedAli

答えて

1

return gap(g,m+1,n)と思っています。それ以外の場合、関数は再帰呼び出しの結果を返しません。

+0

ありがとう!私はしばらくそれを把握しようとしてきました。あなたの魂は働いています! –

関連する問題