2017-05-04 3 views
0

Je travaille actuellement sur un projet où l'utilisateur doit entrer un nombre et le programme déterminera si le nombre est premier ou non. Le problème ici est que l'instruction d'impression se répète une fois exécutée et la seule façon de l'arrêter est de tuer le programme pendant qu'il fonctionne.Instruction d'impression répétée à l'infini

Voici le code du programme:

print("Here, you will be asked to enter a number and the program will 
     determine whether said number is prime. ") 

print ("For the sake of simplicity, we'll only be using numbers that are 
     below 100. ") 

Number = int (input("Please enter a number and we will determine if the 
number you entered if prime. ")) 

for Number in range (1,98): 
    for y in range (1,98): 
     if Number %y!=0: 
      print ("This number is, in fact, a prime number. ") 
     else: 
      if Number %y==0: 
       print ("This number is not prime.") 
+0

S'il vous plaît mettre à jour votre question avec la mise en forme valide et mentionner la langue que vous utilisez. – Malik

Répondre

1

Pour un certain nombre d'être le premier, il devrait être divisible que par lui-même et 1. Donc, tout ce que vous devez vérifier est pour les nombres entre [2, n), s'il est divisible par n'importe quel nombre, alors ce n'est pas un nombre premier et vous devez casser la boucle for. Si la boucle for est cassée lorsque vous atteignez la fin, cela signifie qu'aucun nombre entre [2, n) n'est un facteur de ce nombre, d'où le nombre est premier. Nous vérifions si la boucle est brisée naturellement ou non en utilisant le flag booléen isPrime

PS. Le programme pourrait ne pas compiler comme je ne l'ont pas fait, mais la logique est juste

print ("Here, you will be asked to enter a number and the program will determine whether said number is prime. ") 
print ("For the sake of simplicity, we'll only be using numbers that are below 100. ") 
isPrime = True 
Number = int (input("Please enter a number and we will determine if the number you entered if prime. ")) 

for y in range (2,Number): 
    if Number%y==0 and Number!=y: 
     isPrime = False 
     print ("This number is not prime.") 
     break 
if isPrime: 
     print "Number is prime"