-
-
Notifications
You must be signed in to change notification settings - Fork 358
Expand file tree
/
Copy pathEuclidean.kt
More file actions
33 lines (26 loc) · 655 Bytes
/
Euclidean.kt
File metadata and controls
33 lines (26 loc) · 655 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import kotlin.math.absoluteValue
fun euclidSub(a: Int, b: Int): Int {
var a = a.absoluteValue
var b = b.absoluteValue
while (a != b) {
if (a > b) a -= b
else b -= a
}
return a
}
fun euclidMod(a: Int, b: Int): Int {
var a = a.absoluteValue
var b = b.absoluteValue
while (b != 0) {
val tmp = b
b = a % b
a = tmp
}
return a
}
fun main(args: Array<String>) {
println("[#]\nModulus-based euclidean algorithm result:")
println(euclidMod(64 * 67, 64 * 81))
println("[#]\nSubtraction-based euclidean algorithm result:")
println(euclidSub(128 * 12, 128 * 77))
}