Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program kahla;
- uses WinCrt;
- type
- tab = array[1..100] of integer ;
- var
- a,b : integer;
- { Prem t3abilek tableau bel a3ded el premier elli tnajem testa3mlhom lkol
- a=150 < b = 170
- lim := 170
- T : 2 3 5 7 13 17 19 23 29 37 47 59 67 79
- }
- function prem(x : integer ):Boolean;
- var
- a: integer;
- begin
- a:=2;
- while (x mod a <> 0 ) and (a<= x div 2 ) do
- a:=a+1;
- end;
- procedure rempt(var t : tab ; var n : integer ; a,b : integer );
- var
- lim,x : integer;
- Begin
- if a>b then
- lim:=a
- Else
- lim:=b;
- n:=0;
- for x:=2 to lim div 2 do
- if prem(x) then
- begin
- n:=n+1;
- t[n]:=x;
- end;
- end;
- { procedure decomp t3abilek el tableau elli ta3tihoulha bel puissance mta3 kol 3dad premier testa3mlo
- Exple : a = 150 = 2 * 3 * 5^2
- Ta : 1 1 2 0 0 0 0 ....
- b = 170 = 2 * 5 * 17
- Tb : 1 0 1 0 0 1 0 0 0 ....
- }
- Procedure decomp(var ty : tab ;t : tab ; y,n: integer);
- var
- p,a: integer ;
- Begin
- for a:=1 to n do
- Begin
- p:=0;
- while y mod t[a] = 0 do
- begin
- p:=p+1;
- y:=y div t[a];
- end;
- ty[a]:=p;
- end;
- End;
- Procedure aff(a,b : integer );
- var
- t,ta,tb : tab ;
- n,i : integer ;
- Begin
- rempt(t,n,a,b);
- decomp(ta,t,a,n);
- decomp(tb,t,b,n);
- write(a:6,'= ');
- for i:=1 to n do
- Begin
- if ta[i] <> 0 then
- if i<n then
- write(t[i],'^',ta[i],' * ')
- Else
- write(t[i],'^',ta[i]);
- end;
- writeln;
- write(b:6,'= ');
- for i:=1 to n do
- Begin
- if tb[i] <> 0 then
- if i<n then
- write(t[i],'^',tb[i],' * ')
- Else
- write(t[i],'^',tb[i]);
- end;
- writeln;
- write('PGCD(',a,';',b,') = ');
- for i :=1 to n do
- begin
- if (0<tb[i]) and (ta[i] > 0 ) then
- if ta[i] < tb[i] then
- write(t[i],'^',ta[i],' * ')
- Else
- write(t[i],'^',tb[i],' * ');
- end ;
- end;
- begin
- write('A= ');
- readln(a);
- write('B= ');
- Readln(b);
- aff(a,b);
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement