Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

dimanche 26 avril 2020

Baccalauréat 2015 Sujet 15 Corrigé

Program S15; Type tab = array[1..20] Of integer; Var n1,n2,A,B : integer; T1,T2 : tab; //***************************** Procedure lecture(Var A,B:integer); Begin Repeat write('A='); readln(A); write('B='); readln(B); Until (10 <= A) And (A<=B) And (B<=10000); End; //***************************** Procedure fact_prem(Var t:tab;nb:integer;Var n:integer); Var i,x : integer; Begin n := 0; i := 2; x := nb; While (i <= nb Div 2) Do Begin If x Mod i = 0 Then Begin n := n+1; T[n] := i; x := x Div i; End Else i := i+1; End; End; //***************************** Function existe(x:integer;V:tab;d:integer) : boolean; Var b : boolean; i : integer; Begin i := 0; Repeat i := i+1; b := x=v[i]; Until (b) Or (i=d); existe := b; End; //***************************** Function nb_occ(x:integer;v:tab;d:integer) : integer; Var i,nb : integer; Begin i := 0; nb := 0; For i:=1 To d Do If v[i]=x Then nb := nb+1; nb_occ := nb; End; //***************************** Function calcul(t1,t2:tab; n1,n2:integer) : integer; Var p,i,j : integer; Begin p := 1; i := 1; Repeat If existe(t1[i],t2,n2) Then Begin If nb_occ(t1[i],t2,n2)< nb_occ(t1[i],t1,n1) Then For j:=1 To nb_occ(t1[i],t2,n2) Do p := p*t1[i] Else For j:=1 To nb_occ(t1[i],t1,n1) Do p := p*t1[i]; i := i+nb_occ(t1[i],t1,n1); End Else i := i+1; Until i>n1 ; calcul := p; End; //***************************** Begin lecture(A,B); fact_prem(t1,A,n1); fact_prem(t2,B,n2); writeln('PGCD (',A,',',B,') = ',calcul(t1,t2,n1,n2)); End.
 
Back to top