Program S21;
Var
x : integer;
Procedure saisie(Var x:integer);
Begin
Repeat
writeln('x=');
readln(x);
Until x In [2..10];
End;
//*********************************
Function PGCD(a,b:integer) : integer;
Begin
While a<>b Do
Begin
If a>b Then
a := a-b
Else b := b-a ;
End ;
PGCD := a ;
End;
//*********************************
Function U(n,x:integer) : integer;
Var
S,i : integer;
Begin
S := x;
For i:=2 To n Do
S := S+PGCD(i,S);
U := S;
End;
//*********************************
Procedure Affiche(x:integer);
Var
nb1,nbp,n,V : integer;
Begin
nb1 := 0;
nbp := 0;
n := 1;
Repeat
n := n+1;
V := U(n,x)-U(n-1,x);
If V=1 Then
nb1 := nb1+1
Else
nbp := nbp+1;
write(v,' ');
Until (nbp=nb1)Or(n=31);
writeln;
If nbp=nb1 Then
writeln('La suite V est équilibrée après le calcul de ',n-1,' termes')
Else
writeln('Impossible d''atteindre l''équilibre après le calcul de 30 termes');
End;
//*********************************
Begin
saisie(x);
affiche(x);
End.
Inscription à :
Publier les commentaires (Atom)