Program S16;
Type
tab = array[1..50] Of integer;
Var
n : integer;
T : tab;
//**********************************
Procedure saisie(Var t:tab;Var n:integer);
Var
i : integer;
Begin
Repeat
write('n=');
readln(n);
Until n In [5..50];
For i:=1 To n Do
Repeat
write('T[',i,']=');
readln(T[i]);
Until (T[i]>=100) And (T[i]<=999);
End;
//**********************************
Procedure fact_prem(Var t2:tab;nombre:integer;Var nb_fact:integer);
Var
i,x : integer;
Begin
nb_fact := 0;
i := 2;
x := nombre;
While (i <= nombre Div 2) Do
Begin
If x Mod i = 0 Then
Begin
nb_fact := nb_fact+1;
T[nb_fact] := i;
x := x Div i;
End
Else
i := i+1;
End;
End;
//**********************************
Procedure affiche(T:tab;n:integer);
Var
T2 : tab;
i,k,nb,aff : integer;
nombre : string;
c : char;
Begin
aff := 0;
k := random(4)+2;
For i:=1 To n Do
Begin
fact_prem(t2,t[i],nb);
If k=nb Then
Begin
writeln(T[i],' ',k,'pp');
aff := aff+1;
End;
End;
If aff=0 Then
writeln('Pas de nombre de ',k,'pp');
End;
//**********************************
Begin
randomize;
saisie(T,n);
affiche(T,n);
End.
Inscription à :
Publier les commentaires (Atom)