2017-09-17 4 views
-1

j'utilise Python pour créer une fonction qui détermine si un nombre est premier ou non. Je crois que j'ai bien fait les choses, mais cela échoue sur quelques cas de test. Par exemple, pour 10, il prétend qu'il est premier quand il ne l'est pas. Aucune suggestion?fonction de détermination du nombre premier donne des résultats erronés

def prime(number): 
    result = None 

    for i in range(2, number): 
     if (number % i == 0): 
      result = False 

    result = True 

    return result 
+1

s'il vous plaît indentent correctement votre fonction. Cela retournera toujours Vrai si vous affectez le résultat à Vrai avant de retourner – chrisckwong821

+0

vérifiez la structure du flux de contrôle sous [4.4] (https://docs.python.org/2/tutorial/controlflow.html) – chrisckwong821

Répondre

1

Dans cette partie de votre code:

result = True 

return result 

vous définissez result-True et de revenir immédiatement. Donc, rien de ce qui est arrivé auparavant n'a d'effet, du moins pas en ce qui concerne la valeur de retour. C'est pourquoi votre fonction renverra True pour chaque numéro.

Vous devriez au moins se déplacer ou de supprimer la ligne result = True, mais je vous laisse voir ce qui se passe quand vous faites.