Program S7;
Type
tab = array[1..30] 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..30];
For i:=1 To n Do
Repeat
write('T[',i,']=');
readln(T[i]);
Until (T[i]>=100) And (T[i]<=999);
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..7] Of string;
Var
T2 : tab2;
i,j,k,nbr,nb : integer;
nombre : string;
c : char;
Begin
For i:=1 To n Do
Begin
str(T[i],nombre);
T2[1] := nombre;
For k:=2 To 3 Do
Begin
c := nombre[3];
For j:= 3 Downto 2 Do
nombre[j] := nombre[j-1];
nombre[j-1] := c;
T2[k] := nombre;
End;
For j:=1 To 2 Do
Begin
k := k+1;
T2[K] := Copy (T2[1],j,2);
k := k+1;
T2[k] := T2[K-1,2]+T2[K-1,1];
End;
nb := 0;
For j := 1 To 7 Do
Begin
val(T2[j],nbr);
If premier(nbr) Then
nb := nb+1;
End;
If nb=7 Then
writeln(T[i],' est un nombre premier circulaire ');
End;
End;
//**************************************
Begin
saisie(T,n);
affiche(T,n);
End.
Inscription à :
Publier les commentaires (Atom)