Programa Máximo Divisor Comum


Fazer um programa em Pascal para ler dois números inteiros e calcular o máximo divisor comum. Apresentar 2 testes de mesa, para 72 e 27 e para 125 e 90. 




program MaximoDivisorComum;


var Numero1,Numero2,Divisor,Resto1,Resto2,MDC: integer;
opc:char;


begin


REPEAT
     Writeln('#########################');
     Writeln('MAXIMO DIVISOR COMUM');


     REPEAT
           WRITE('Digite o primeiro numero (Maior que ZERO) ');
           READLN(Numero1);
     UNTIL Numero1>0;


     REPEAT
           WRITE('Digite o segundo numero (Maior que ZERO) ');
           READLN(Numero2);
     UNTIL Numero2>0;
     IF Numero2>Numero1 THEN
     divisor:=Numero1
     ELSE Divisor:=Numero2;


     REPEAT
           Resto1:=Numero1 MOD divisor;
           Resto2:=Numero2 MOD divisor;
           IF (resto1=0) AND (resto2=0) THEN BEGIN
                                                  MDC:=Divisor;
                                                  Divisor:=1
                                             END;
           divisor:=divisor-1;
     UNTIL divisor=0;
     writeln ('');
     WRITELN('O Maximo Divisor Comum entre ',Numero1,' e ',Numero2,' ‚ ',MDC);




     repeat
     writeln ('');
     writeln ('###################################');
     writeln ('# Deseja executar novamente?      #');
     writeln ('# Digite: 1 para SIM | 2 para NAO #');
     writeln ('###################################');
     readln (opc);
     Until (opc='2') OR (opc='1');


     UNTIL opc='2';
END.


TESTES DE MESA

VALORES:

Numero 1: 72
Número 2:  27

DIVISOR
RESTO1
RESTO2
MDC

27
18
0
-

26
20
1
-

25
22
2
-

24
0
3
-

23
3
4
-

22
6
5
-

21
9
6
-

20
12
7
-

18
15
8
-

18
0
9
-

17
4
10
-

16
8
11
-

15
12
12
-

14
2
13
-

13
7
2
-

12
0
3
-

11
6
5
-

10
2
7
-

9
0
0
9






VALORES:
Número 1: 125
Número 2: 90

DIVISOR
RESTO1
RESTO2
MDC
90
35
0
-
89
36
1
-
88
37
2
-
87
38
3
-
86
39
4
-
85
40
5
-
84
41
6
-
83
42
7
-
82
43
8
-
81
44
9
-
80
45
10
-
79
46
11
-
78
47
12
-
77
48
13
-
76
49
14
-
75
50
15
-
74
51
16
-
73
52
17
-
72
53
18
-
71
54
19
-
70
55
20
-
69
56
21
-
68
57
22
-
67
58
23
-
66
59
24
-
65
60
25
-
64
61
26
-
63
62
27
-
62
1
28
-
61
3
29
-
60
5
30
-
59
7
31
-
58
9
32
-
57
11
33
-
56
13
34
-
55
15
35
-
54
17
36
-
53
19
37
-
52
21
38
-
51
23
39
-
50
25
40
-
49
27
41
-
48
29
42
-
47
31
43
-
46
33
44
-
45
35
0
-
44
37
2
-
43
39
4
-
42
41
6
-
41
2
8
-
40
5
10
-
39
8
12
-
38
11
14
-
37
14
16
-
36
17
18
-
35
20
20
-
34
23
22
-
33
26
24
-
32
29
26
-
31
1
28
-
30
5
0
-
29
9
3
-
28
13
6
-
27
17
9
-
26
21
12
-
25
0
15
-
24
5
18
-
23
10
21
-
22
15
2
-
21
20
6
-
20
5
10
-
19
11
14
-
18
17
0
-
17
6
5
-
16
13
10
-
15
15
0
-
14
13
6
-
13
8
12
-
12
5
6
-
11
4
2
-
10
5
0
-
9
8
0
-
8
5
2
-
7
6
6
-
6
5
0
-
5
0
0
5