Program S2;
uses crt;
Type
fdat = file Of integer;
Var
f : fdat;
p,q : integer;
//****************************************
Function premier(n:integer) : boolean;
Var
nbd,i : integer;
Begin
nbd := 0;
For i:=1 To n Do
If (n Mod i=0) Then
nbd := nbd+1;
premier := (nbd=2);
End;
//****************************************
Function permut_cir(ch:String) : integer;
Var
i,n,e : integer;
c : char;
Begin
c := ch[length(ch)];
For i:=length(ch) Downto 2 Do
ch[i] := ch[i-1];
ch[1] := c;
val(ch,n,e);
permut_cir := n;
End;
//****************************************
Function circulaire(n:integer) : boolean;
Var
ok : boolean;
p : integer;
ch : string;
Begin
str(n,ch);
ok := true;
Repeat
p := permut_cir(ch);
If (premier(p)=false) Then
ok := false
Else
str(p,ch);
Until (ok=false) Or(p=n);
circulaire := ok;
End;
//****************************************
Procedure nb_premier_cir(Var f:fdat; p,q:integer);
Var
i : integer;
Begin
rewrite(f);
For i:=p To q Do
If (premier(i)) Then
If (circulaire(i)) Then
write(f,i);
End;
//****************************************
Procedure affiche(Var f:fdat);
Var
ch : string;
n : integer;
Begin
reset(f);
While (Not(eof(f))) Do
Begin
read(f,n);
writeln('---->',n);
readln;
End;
End;
//****************************************
Begin
assign(f,'cicul.dat');
Repeat
write('saisir p: ');
readln(p);
write('saisir q: ');
readln(q);
Until (p>10) And(p<q) And (q<20000);
nb_premier_cir(f,p,q);
clrscr;
writeln('--------------------------------------------------------');
writeln;
writeln('------------ Le contenu du fichier Circ.dat ---------');
writeln;
writeln('--------------------------------------------------------');
affiche(f);
End.
Inscription à :
Publier les commentaires (Atom)