Program S8;
Type
tab = array[1..100] 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 [10..100];
For i:=1 To n Do
Repeat
write('T[',i,']=');
readln(T[i]);
Until (T[i]>=1000) And (T[i]<=9999);
End;
//*************************************
Function maximum(T3:tab;n:integer) : integer;
Var
i,max : integer;
Begin
max := T3[1];
For i:=2 To n Do
If max < T3[i] Then
max := T3[i];
maximum := max;
End;
//*************************************
Function premier(nombre:integer) : boolean;
Var
i : integer;
b : boolean;
Begin
i := 2;
While ((nombre Mod i <> 0)And (i<=nombre Div 2)) Do
i := i+1;
premier := (i > nombre Div 2) And (nombre<>1) ;
End;
//*************************************
Procedure affiche(T:tab;n:integer);
Type
tab2 = array[1..20] Of string;
Var
T2 : tab2;
T3 : tab;
i,j,k,nb_c,taille,nb : integer;
nombre : string;
Begin
For i:=1 To n Do
Begin
str(T[i],nombre);
nb_c := 1;
taille := 0;
Repeat
j := 0;
Repeat
taille := taille+1;
j := j+1;
T2[taille] := Copy (nombre,j,nb_c);
Until j+nb_c>4;
nb_c := nb_c+1;
Until nb_c>4;
k := 0;
For j := 1 To taille Do
Begin
val(T2[j],nb);
If premier(nb) Then
k := k+1;
End;
T3[i] := k;
End;
write('Residents gagnants : ');
For i:=1 To n Do
If T3[i] = maximum(T3,n) Then
write(T[i],' ');
End;
//*************************************
Begin
saisie(T,n);
affiche(T,n);
End.
Inscription à :
Publier les commentaires (Atom)