Une petite explication :
Citation :
k:=-1;
P=array(1..a);
N=array(1..a);
initialisation de k à -1 et on définit 2 tableaux N et P qui vont contenir les pi et les ni
Citation :
for i from 2 to a do
P[i]:=0;
N[i]:=0;
od;
ces tableaux sont initialisés à 0 ( tous les termes sont nuls)
ça n'a pas forcément beaucoup d'utilité là, mais ça peut en avoir ensuite pour retrouver les facteurs premiers.
Citation :
k:=k+1;
P[k]=a;
N[k]=1;
Il ne faut pas oublier le dernier terme ( qui peut etre 1 )
exemple : si on recherche les facteurs premiers de 22, on se rend compte que la boucle précédente ne va prendre en compte que le 2. Il ne faut pas oublier de rajouter le 11 à la fin.
Citation :
for i from 2 to sqrt(b) do
if (a mod i)=0 then
k:=k+1;
while ( a mod i) =0 do
p[k]=i;
N[k]=N[k]+1;
a:=a/i;
od;
od;
od;
boucle qui permet de tester tous les diviseurs de a.
la boucle while permet d'affecter la valeur de i ( et donc du facteur premier ) dans le tableau pi, puis on incrémente le ni.