Program S3;
Var 
    n : longint;
//*************************************
Procedure saisie(Var n : longint);
Begin
    Repeat
        Write('Donner un entier >= 10 : ');
        Readln(n);
    Until (n >= 10);
End;
//*************************************
Function inverse(n : longint) : longint;
Var 
    v : longint;
Begin
    v := 0;
    While (n <> 0) Do
        Begin
            v := v * 10 + n Mod 10;
            n := n Div 10;
        End;
    inverse := v;
End;
//*************************************
Function palindrome(n : longint) : boolean;
Begin
    palindrome := inverse(n) = n;
End;
Procedure palindromique(n : longint);
Var 
    i : integer;
    p : boolean;
Begin
    i := 0;
    Repeat
        i := i + 1;
        Write(n, ', ');
        p := palindrome(n);
        n := n + inverse(n);
    Until (p) Or (i = 11);
    Writeln;
    If (Not p) And (i = 11) Then
        Writeln('Le calcul de 11 termes ne donne pas une suite palindromique')
    Else
        Writeln('Suite palindromique');
End;
//*************************************
Begin
    saisie(n);
    palindromique(n);
End.
Inscription à :
Publier les commentaires (Atom)