bonjour,
j'ai un exo sur les algorithmes : pourriez-vous m'aider
Écrire un algorithme qui à partir d'un entier strictement positif, retourne le résultat booléen vrai ou faux selon que le nombre est premier ou non. Pour mémoire, voici la liste des nombres premiers inférieurs à 100 : 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
je sais déjà qu'un nombre premier est un nombre entier qui admet seulement 2 diviseurs distincts : 1 et lui-même.
merci d'avance
Pour une telle recherche, on passe généralement en revue
tous les nombres d de 2 à Ent(N)+1, pour chercher
si le résultat q de la division de N par d est égal à Ent(q).
On peut chercher aussi tous les nombre d à partir de 2 tant que d < q
On peut optimiser,
pour savoir d'abord si le nombre N est divisible par 2,
pour savoir ensuite si le nombre N est divisible par 3,
puis ne passer en revue que les nombres 6p-1 et 6p+1
Est ce que mon algorithme est juste ? svp ?
Algorithme Nombre Premier
Variables :
n : entier
Premier : booleen
i : entier
debut
Premier <-- Vrai
i <-- 2
si n = 0 ou n = 1 alors
Premier <-- Faux
finsi
tantque Premier et i <= n faire
si n mod i = 0 alors
Premier <-- Faux
sinon
i <-- i + 1
finsi
fintantque
retourner Premier
fin
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :