fonction josephusFlavius(n,k) : entier   Données n : entier k : entier   Locales i : entier { Indice de boucle pour } pos : entier { Indice de parcours } cpt : entier { Compteur de soldats non elimines } t : Tableau [n] de booléen { Tableau de gestion du parcours } { et des eliminations } { Initialisation du tableau t } { Le soldat 0 est elimine } t[0] := vrai { Les autres soldats ne le sont pas } pour i de 1 à n-1 faire t[0] := faux fait { Le parcours a la recherche du prochain } { soldat a eliminer commence a l'indice 0 } pos := 0 { Il reste n-1 soldats a eliminer } pour i de 1 à n-1 faire { Initialisation du compteur de soldats } { non elimines a parcourir } cpt := 0 { Parcours jusqu'a avoir trouve le kieme soldat non elimine } faire { On avance de 1 soldat en revenant a l'indice 0 } { quand on avance depuis l'indice n-1 } pos := (pos+1) modulo n { Si le soldat en position pos n'est pas elimine } si t[pos] = faux alors { Le compteur de soldats non elimines est incremente de 1 } cpt := cpt+1 fsi tant que cpt != k { pos est sur le kieme soldat non elimine } { -> on l'elimine } t[pos] := vrai fait { Resultat fonction : Dernier soldat elimine } Resultat : pos fin fonction