voyage 200

voyage 200 - Divers - Programmation

Marsh Posté le 17-04-2006 à 16:24:15    

Bonjour, je voudrai créer un programme permettant de vérifier si un nombre est premier ou pas (c'est-à-dire s'il n'est divisible que par lui-même et par 1 ou par d'autres nombres).
 
Voici mon algo :
 
lire n
k:=2
tant que k^2<=n faire
      si k/n
         imprimer : n est non premier
      sinon
         k:=k+1
         imprimer : n est premier
     fin du si
fin du tant
 
Voici ce que j'ai programmé sur la Voyage 200
 
nombprem(n)
Prgm
Local k
2->k
While k^2<=n
      If k/n=true Then
         Disp « le nombre n'est pas premier »
      Else
          k+1->k
          Disp « le nombre est premier »
      EndIf
EndWhile
EndPrgm
 
Lorsque je l'exécute, il m'affiche toujours que le nombre est premier ce qui n'est pas toujours le cas.  
Pouvez-vous m'aider?
Je vous en remercie d'avance.

Reply

Marsh Posté le 17-04-2006 à 16:24:15   

Reply

Marsh Posté le 17-04-2006 à 16:58:42    

Mmm...  
Je comprend pas bien pourquoi tu mets le "imprimer : n est premier" just apres le k = k+1 ... C'est pas parceque k%n != 0 que n est premier ... c'est juste qu'il n'est pas divisible par n ..  Moi j'aurais plutot mis un p = true au debut, et si k%n=0, p=false et a la fin tu fais un if p print "Premier"


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed