Program S13;
Var
m : string;
Function
//********************************
valide(ch:String) : boolean;
Var
i,l,somdiv : integer;
Begin
l := length(ch);
somdiv := 0;
For i:=1 To l Div 2 Do
If l Mod i =0 Then
somdiv := somdiv+1;
If (l>4) And (somdiv<>1) Then
valide := true
Else
valide := false;
End;
//********************************
Procedure saisie(Var m :String);
Begin
Repeat
write('Donner le message a crypter');
readln(m);
Until (valide(m));
End;
//********************************
Function crypter(m:String) : string;
Var
i,j,k,l : integer;
ch,ch1 : string;
Begin
l := length(m);
ch := '';
ch1 := m;
For i:=2 To l Div 2 Do
Begin
If l Mod i=0 Then
Begin
k := 0;
Repeat
j := k+i+1;
Repeat
j := j-1;
ch := ch+ch1[j];
Until (j=k+1);
k := k+i;
Until (k>l-1);
End;
if ch<>'' then
ch1 := ch;
ch := '';
End;
crypter := ch1;
End;
//********************************
Begin
saisie(m);
writeln(crypter(m));
End.
Inscription à :
Publier les commentaires (Atom)