@@ -69,34 +69,38 @@ The Euclidean Algorithm is truly fundamental to many other algorithms throughout
69
69
#include < cmath>
70
70
71
71
// Euclidean algorithm using modulus
72
- int euclid_mod (int a, int b) {
72
+ int euclid_mod (int a, int b)
73
+ {
73
74
a = std::abs(a);
74
75
b = std::abs(b);
75
76
while (b != 0) {
76
- auto temp = b;
77
- b = a % b;
77
+ int temp = b;
78
+ b = a% b;
78
79
a = temp;
79
80
}
80
81
81
82
return a;
82
83
}
83
84
84
85
// Euclidean algorithm with subtraction
85
- int euclid_sub(int a, int b) {
86
+ int euclid_sub(int a, int b)
87
+ {
86
88
a = std::abs(a);
87
89
b = std::abs(b);
88
90
while (a != b) {
89
91
if (a > b) {
90
92
a -= b;
91
- } else {
93
+ }
94
+ else {
92
95
b -= a;
93
96
}
94
97
}
95
98
96
99
return a;
97
100
}
98
101
99
- int main() {
102
+ int main()
103
+ {
100
104
auto check1 = euclid_mod(64* 67, 64* 81);
101
105
auto check2 = euclid_sub(128* 12, 128* 77);
102
106
@@ -111,42 +115,43 @@ int main() {
111
115
#include <stdio.h>
112
116
#include <math.h>
113
117
114
- int euclid_mod(int a, int b){
118
+ int euclid_mod(int a, int b)
119
+ {
115
120
a = abs(a);
116
121
b = abs(b);
117
122
118
- int temp;
119
123
while (b != 0){
120
- temp = b;
124
+ int temp = b;
121
125
b = a%b;
122
126
a = temp;
123
127
}
124
128
125
129
return a;
126
130
}
127
131
128
- int euclid_sub(int a, int b){
132
+ int euclid_sub(int a, int b)
133
+ {
129
134
a = abs(a);
130
135
b = abs(b);
131
136
132
- while (a != b){
133
- if (a > b){
134
- a = a - b;
137
+ while (a != b) {
138
+ if (a > b) {
139
+ a -= b;
135
140
}
136
- else{
137
- b = b - a;
141
+ else {
142
+ b -= a;
138
143
}
139
144
}
140
145
141
146
return a;
142
147
}
143
148
144
- int main(){
145
-
146
- int check = euclid_mod(64*67, 64*81);
149
+ int main()
150
+ {
151
+ int check1 = euclid_mod(64*67, 64*81);
147
152
int check2 = euclid_sub(128*12, 128*77);
148
153
149
- printf("%d\n", check );
154
+ printf("%d\n", check1 );
150
155
printf("%d\n", check2);
151
156
}
152
157
@@ -235,7 +240,7 @@ print euclid_sub(128 * 12, 128 * 77)
235
240
### C#
236
241
237
242
``` cs
238
- // submitted by Julian Schacher
243
+ // submitted by Julian Schacher
239
244
using System ;
240
245
241
246
namespace Euclidean_Algorithm
@@ -321,34 +326,36 @@ main = do
321
326
322
327
``` rust
323
328
fn euclid_sub (mut a : i64 , mut b : i64 ) -> i64 {
324
- a = a . abs ();
325
- b = b . abs ();
326
- while a != b {
327
- if a < b {
328
- b -= a ;
329
- } else {
330
- a -= b ;
329
+ a = a . abs ();
330
+ b = b . abs ();
331
+ while a != b {
332
+ if a < b {
333
+ b -= a ;
334
+ } else {
335
+ a -= b ;
336
+ }
331
337
}
332
- }
333
- a
338
+
339
+ a
334
340
}
335
341
336
342
fn euclid_rem (mut a : i64 , mut b : i64 ) -> i64 {
337
- a = a . abs ();
338
- b = b . abs ();
339
- while b != 0 {
340
- let tmp = b ;
341
- b = a % b ;
342
- a = tmp ;
343
- }
344
- a
343
+ a = a . abs ();
344
+ b = b . abs ();
345
+ while b != 0 {
346
+ let tmp = b ;
347
+ b = a % b ;
348
+ a = tmp ;
349
+ }
350
+
351
+ a
345
352
}
346
353
347
354
fn main () {
348
- let chk1 = euclid_rem (64 * 67 , 64 * 81 );
349
- let chk2 = euclid_sub (128 * 12 , 128 * 77 );
350
- println! (" {}" , chk1 );
351
- println! (" {}" , chk2 );
355
+ let chk1 = euclid_rem (64 * 67 , 64 * 81 );
356
+ let chk2 = euclid_sub (128 * 12 , 128 * 77 );
357
+ println! (" {}" , chk1 );
358
+ println! (" {}" , chk2 );
352
359
}
353
360
```
354
361
@@ -414,5 +421,5 @@ public static int euclidMod(int a, int b) {
414
421
}
415
422
416
423
return a;
417
- }
424
+ }
418
425
```
0 commit comments