Program Facteur_Premier ; Type tab = array [1..100] of integer; Var fp : tab; n, i, f : integer; Begin Repeat Writeln('donner un entier entre 2 et 1000'); Readln (n); until (n>=2) and (n<=1000); Write(n, ' = '); i := 2; f:=0; Repeat If (n mod i = 0) Then Begin n:= n div i; f:=f+1; fp[f] := i; End Else i:=i+1; Until (n=1); write (fp[1]); For i:=2 To f Do Write (' * ', fp[i]); End.