SOS test de primalité
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

SOS test de primalité



  1. #1
    invite61d1d50b

    SOS test de primalité


    ------

    Je dois faire un programme ( test de primalité ) avec algobox. J'ai déjà galérer à établir la trame de ce programme ( pourtant très simple ) et voilà qu'il ne fonctionne toujours pas. Si quelqu'un à algobox et maîtrise le logiciel, saurait-il où est ce que ça pose problème? Je vous ai mis le fichier MERCIII

    -----

  2. #2
    invite61d1d50b

    Re : SOS test de primalité

    je n'arrive pas à mettre mon fichier!! En fait, dans mon programme, je me sers d'une variable test 'T' puis je fais une boucle avec tant que t=0 ... Puis je mets des conditions : -Si 2/N alors T=1 'Si 3/N alors T=1 le problème c'est que ( enfin je crois ) si T prends la valeur 1 lors d'une condition, alors, lors de la suivante il reprend la valeur 0 ( si il ne prend pas la valeur 1 ) Je ne sais pas comment faire. Si quelqu'un a une idée ...

  3. #3
    invitec09adee9

    Re : SOS test de primalité

    Tu pars de n
    et tu en extrait la racine carre
    Tu forces Racine de N impair
    Si n a un diviseur il sera forcement < racine n et impair

    Code:
    NR:= sqrt(n)
    if not odd(NR) then NR:= NR +1;         
    I:=3
    Etat:=Premier
    repeat
       if N mod i=0 then Etat:=compose break;
       i:= I+4 ///  astuce qui evite de diviser par les nombres finissants par 5
      if N mod i=0 then Etat:=compose break;
       i:= I+2
      if N mod i=0 then Etat:=compose break;
       i:= I+2
      if N mod i=0 then Etat:=compose break;
       i:= I+2
    Until I> NR
      Etat te donne la primarite

    Si vous avez des questions n'hesitez pas
    SpeedCodeur
    Dernière modification par Jack ; 10/03/2012 à 18h00. Motif: Taille de police trop agressive, ajout balise code

  4. #4
    invite2d7144a7

    Re : SOS test de primalité

    Bonjour,

    Curieux.

    Tu prends la peine de sauter les nombres se terminant par 5 (au prix de pas mal de lignes de code ...), ok, admettons, même si ce n'est pas le but de ce genre d'exercice basique.

    MAIS, tu n'as pas testé si le nombre était pair ou non ! (test qu'on peut faire avant tout autre calcul, y compris l'extraction de la racine).

    En tant qu'enseignant, cet oubli te vaudrait un zéro majuscule.

  5. A voir en vidéo sur Futura
  6. #5
    invite61d1d50b

    Re : SOS test de primalité

    Je comprends rien Non mais il faut que je continue sur ce que j'ai fais. Voila à quoi ça ressemble. S'ils vous plaît ... Quelqu'un pourrait me dire le problème? Merciii
    Images attachées Images attachées  

  7. #6
    invite61d1d50b

    Re : SOS test de primalité

    N%2 c'est : reste dans la division euclidienne de N par 2
    Les == sont en fait des =
    Et à la fin je met si T!=0 ( si T différent de 0 )

  8. #7
    invite4492c379

    Re : SOS test de primalité

    Citation Envoyé par SpeedCodeur Voir le message
    Tu pars de n
    et tu en extrait la racine carre
    Tu forces Racine de N impair
    Si n a un diviseur il sera forcement < racine n et impair

    Code:
    NR:= sqrt(n)
    if not odd(NR) then NR:= NR +1;         
    I:=3
    Etat:=Premier
    repeat
       if N mod i=0 then Etat:=compose break;
       i:= I+4 ///  astuce qui evite de diviser par les nombres finissants par 5
      if N mod i=0 then Etat:=compose break;
       i:= I+2
      if N mod i=0 then Etat:=compose break;
       i:= I+2
      if N mod i=0 then Etat:=compose break;
       i:= I+2
    Until I> NR
      Etat te donne la primarite

    Si vous avez des questions n'hesitez pas
    SpeedCodeur
    Ce code est faux, effectuons une trace avec N=25
    on calcule NR=5

    i N mod i Etat i>NR Remarques
    3 Premier Initialisations
    3 1 Premier tour de boucle / i=i+4
    7 4 i=i+2
    9 7 i=i+2
    11 3 i=i+2
    13 Vrai Fin du premier tour


    Donc 25 est premier.

  9. #8
    invite4492c379

    Re : SOS test de primalité

    Hello Basto007,

    Avant d'essayer de coder quoi que ce soit il faut essayer de dire en Français courant ce que toi-même tu fais à la main pour tester la primalité d'un naturel n.

    Pour faire simple :
    si n vaut 0 ou 1 et dans ce cas (par définition) n n'est pas premier
    sinon on va passer en revue les nombres >1 mais <n, pour chacun de ces nombres, appelons les i, on teste si i divise n
    ..si i divisise n alors n est composé et on peut s'arrêter
    ..sinon on passe au i suivant, s'il n'y en a plus c'est que n est premier

    Comprends-tu cette explication ?

Discussions similaires

  1. [Immunologie] le test MTS :sos:
    Par invite1dfacbf3 dans le forum Biologie
    Réponses: 4
    Dernier message: 03/03/2010, 15h19
  2. Test de primalité
    Par invite428e20bb dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 30/03/2009, 10h19
  3. Primalité du nombre un
    Par Seirios dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 18/01/2009, 19h56
  4. Conjectures sur le test de primalité des nombres de Mersenne
    Par inviteb0cf188d dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 30/07/2006, 14h28
  5. >>> Test de primalité en 1 opération :
    Par SPH dans le forum Mathématiques du supérieur
    Réponses: 19
    Dernier message: 03/01/2006, 21h49