next up previous contents index
suivant: Traduction Xcas monter: Un exemple : le précédent: Description   Table des matières   Index

Écriture de l'algorithme

Fonction crible(N)
local TAB PREM I P
// TAB et PREM sont des listes
{} ->TAB
{} ->PREM
//on suppose que les indices d'une liste debutent par 0
//si ils commencent par 1, mettre pour I de 1 a N
pour I de 0 a N faire 
  concat(TAB, I) -> TAB
fpour
//On met 0 dans TAB[1] car 1 n'est pas premier
//barrer 1 a ete realise en le remplacant par 0
0 -> TAB[1]
//TAB est la liste 0 0 2 3 4 ...N 
2 -> P
// On a fait les points 1 et 2
tantque P*P <= N faire
  pour I de P a E(N/P) faire
//E(N/P) designe la partie entiere de N/P
    0 -> TAB[I*P]
  fpour
// On a barre tous les multiples de P a partir de P*P
  P+1 -> P
//On cherche le plus petit nombre <= N non barre (non nul)
// entre P et N
  tantque (P*P <= N) et (TAB[P]=0) faire
    P+1 -> P
  ftantque
ftantque
//on ecrit le resultat dans une liste PREM
pour I de 2 a N faire
  si TAB[I]!= 0 alors 
     concat(PREM, I) -> PREM
  fsi
fpour
retourne PREM


Documentation de giac écrite par Renée De Graeve