suivant: Traduction Xcas
monter: La fonction "estpremier"
précédent: La fonction "estpremier"
Table des matières
Index
- Premier algorithme
On va écrire un fonction booléenne de paramètre N, qui sera égale à
VRAI quand N est premier, et, à FAUX sinon.
Pour cela, on cherche si N posséde un diviseur différent de 1 et
inférieur ou égal à
E(
) (partie entière de racine de N).
On traite le cas N=1 à part !
On utilise une variable booléenne PREM qui est au départ à VRAI, et
qui passe à FAUX dès que l'on rencontre un diviseur de N.
Fonction estpremier(N)
local PREM, I, J
E(
) ->J
Si N = 1 alors
FAUX->PREM
sinon
VRAI->PREM
fsi
2->I
tantque PREM et I
J faire
si N mod I = 0 alors
FAUX->PREM
sinon
I+1->I
fsi
ftantque
retourne PREM
ffonction
-Première amélioration
On peut remarquer que l'on peut tester si N est pair, et ensuite,
tester si N posséde un diviseur impair.
Fonction estpremier(N)
local PREM, I, J
E(
) ->J
Si (N = 1) ou (N mod 2 = 0) et N
2 alors
FAUX->PREM
sinon
VRAI->PREM
fsi
3->I
tantque PREM et I
J faire
si N mod I = 0 alors
FAUX->PREM
sinon
I+2->I
fsi
ftantque
retourne PREM
ffonction
- Deuxième amélioration
On regarde si N est divisible par 2 ou par 3, sinon on regarde si N posséde un diviseur de la forme
6×k - 1 ou
6×k + 1
(pour
k
).
Fonction estpremier(N)
local PREM, I, J
E(
) ->J
Si (N = 1) ou (N mod 2 = 0) ou ( N mod 3 = 0) alors
FAUX->PREM
sinon
VRAI->PREM
fsi
si N=2 ou N=3 alors
VRAI->PREM
fsi
5->I
tantque PREM et I
J faire
si (N mod I = 0) ou (N mod I+2 =0) alors
FAUX->PREM
sinon
I+6->I
fsi
ftantque
retourne PREM
ffonction
suivant: Traduction Xcas
monter: La fonction "estpremier"
précédent: La fonction "estpremier"
Table des matières
Index
Documentation de giac écrite par Renée De Graeve