Nbr premier

hajar512 -  
 buzus -
slt à tous

svp jai pas trouvé la solution de cet algo:

saisir un nombre et savoir s'il est un nombre premier ou non

merci

5 réponses

dna.factory Messages postés 29347 Date d'inscription   Statut Modérateur Dernière intervention   1 619
 
bah, c'est facile, il me semble
(mes souvenirs d'algo étant un peu vieux, je te le fais en francais)

tu fais une boucle de 2 à x ou x est ton nombre
tu fais un modulo de ton nombre par x, si le résultat est 0, tu met une variable de sortie à 1 (ou tu break, mais c'est mal de break)
tant que la variable de sortie est à 0 et que x est inférieur à ton nombre, tu boucle

le modulo, c'est l'opération qui donne le reste de la division euclidienne, si tu sais pas le faire, tu jongle avec division reele et division entiere (euclidienne)
1
buzus
 
Bonjour,

pour voir si le nombre "B" est premier, il faut créer une variable entière "A" que tu initialise à 2.

tu utilises une fonction modulo ou reste division euclidienne. (reste division euclidienne = modulo de B par A)

Si le résultat est égale à zéro c'est que ton nombre n'est pas premier.
Si le résultat est différent de zéro c'est que ton nombre n'est pas divisible par A.

Incrémente A tant qu'il soit inférieur ou égale à B/2

Si A supérieur à B/2 alors ton nombre est premier.

A+
1
dna.factory Messages postés 29347 Date d'inscription   Statut Modérateur Dernière intervention   1 619
 
effectivement, j'allais ou bout, mais y'avais pas besoin...

une solution sans le modulo.. je comprends l'intéret pédagogique, mais cela reviendra toujours à la même chose
autant demander tout de suite l'algo du modulo, ça revient au même
1
hajar512
 
non je savais deja la solution du modulo je veux autre solution merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
buzus
 
Si tu veux pas utiliser le modulo tu peux créer ta fonction modulo.

Soit A ton nombre en entrer de fonction et B ton index que tu incrémentes et initialiser à 2.
r=réel
i=integer

Pour cela : tu divises rA par rB

tu obtiens rC

tu convertie rC en entier que tu écris dans iD

tu fais iD x iB = iE

ensuite tu fais : iA - iE = iR (reste de ta division euclidienne)

dans tout ca il te faut jongler entre réel et integer.

A+
0