fonction factprem(N)
local D FACT
2 -> D
{} -> FACT
tantque N si N mod D = 0 alors
concat(FACT,D) -> FACT
N/D -> N
sinon
D+1 -> D
fsi
ftantque
retourne FACT
ffonction
fonction factprem1(N)
local D FACT
2 -> D
{} -> FACT
tantque D*D si N mod D = 0 alors
concat(FACT,D) -> FACT
N/D-> N
sinon
D+1 -> D
fsi
ftantque
concat(FACT,N) -> FACT
retourne FACT
ffonction
Dans la liste FACT, on a les diviseurs premiers éventuellement
plusieurs fois, par exemple :
Dans la liste FACT, on fait suivre chaque diviseur premier par son
exposant, par exemple :
factprem2(12)={2,2,3,1}.
fonction facprem2(N)
local K D FACT
{}->FACT
0 -> K
tantque N mod 2 = 0 faire
K+1 -> K
N/2 -> N
ftantque
si K concat(FACT,{2 K}) -> FACT
fsi
3 ->D
tantque D*D 0 -> K
tantque N mod D = 0 faire
K+1 -> K
N/D -> N
ftantque
si K concat(FACT,{D K}) -> FACT
fsi
D+2 -> D
ftantque
si N concat(FACT,{N 1}) -> FACT
fsi
retourne FACT
ffonction
fonction factprem3(N)
local J,D,FACT
2->D
{}->FACT
tantque (D*D<=N) faire
0->J
tantque (N mod D=0) faire
N/D->N
J+1->J
ftantque
si (J si (D<4) alors 2*D-1->D sinon D+(4*D mod 6)->D fsi ftantquesi (N