
Ce programme est avant tout constitué d'une boucle itérative sur une variable \texttt{n}: cette variable prend les valeurs entières de 2 à 99. Pour chacune de ces valeurs :
\begin{itemize}
\item on commence par tester si elle est égale à 2: si c'est le cas, on affiche \og 2 \fg{}, sinon on passe à la suite ;

\item si $n\neq2$, on initialise une variable \texttt{p} à \og \texttt{True} \fg{} (variable booléenne) et une autre variable \texttt{k} à 2. On entre alors dans une boucle conditionnelle tant que $k<n$ et que \texttt{p} vaut \texttt{True}.

\item si le reste de la division euclidienne de $n$ par $k$ vaut 0 (c'est-à-dire si $k$ divise $n$), \texttt{p} vaut \texttt{False}, ce qui a pour conséquence que la boucle conditionnelle est terminée (car elle n'est exécutée que si \texttt{p} vaut \texttt{True});

La valeur de \texttt{k} est augmentée de 1 à chaque passage dans la boucle conditionnelle. Donc si \texttt{p} reste toujours à \texttt{False}, la boucle conditionnelle s'arrêtera dès lors que la condition \og $k<n$ \fg{} n'est plus vérifiée, c'est-à-dire quand $k=n$;

\item une fois la boucle conditionnelle terminée, si \texttt{p} vaut encore \texttt{True}, la valeur de $n$ est affichée.
\end{itemize}

Ainsi, on n'affiche que les valeurs de $n$ qui n'ont pas de diviseurs inférieurs à $n$, ce qui correspond aux nombres premiers inférieurs à 100.
