Skip to content

Commit 6c905ec

Browse files
stormoficeleios
andauthored
Euclidean algorithm: Output standardization (#877)
Co-authored-by: James Schloss <jrs.schloss@gmail.com>
1 parent 8693a37 commit 6c905ec

29 files changed

+96
-51
lines changed

contents/euclidean_algorithm/code/asm-x64/euclidean_example.s

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
.intel_syntax noprefix
22

33
.section .rodata
4-
fmt: .string "%d\n"
4+
euclid_mod_fmt: .string "[#]\nModulus-based euclidean algorithm result:\n%d\n"
5+
euclid_sub_fmt: .string "[#]\nSubtraction-based euclidean algorithm result:\n%d\n"
56

67
.section .text
78
.global main
@@ -59,14 +60,14 @@ main:
5960
mov rdi, 4288 # Call euclid_mod
6061
mov rsi, 5184
6162
call euclid_mod
62-
mov rdi, OFFSET fmt # Print output
63+
mov rdi, OFFSET euclid_mod_fmt # Print output
6364
mov rsi, rax
6465
xor rax, rax
6566
call printf
6667
mov rdi, 1536 # Call euclid_sub
6768
mov rsi, 9856
6869
call euclid_sub
69-
mov rdi, OFFSET fmt # Print output
70+
mov rdi, OFFSET euclid_sub_fmt # Print output
7071
mov rsi, rax
7172
xor rax, rax
7273
call printf

contents/euclidean_algorithm/code/bash/euclid.bash

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ euclid_sub() {
3838
}
3939

4040
result=$(euclid_mod $((64 * 67)) $((64 * 81)))
41-
echo "$result"
41+
echo -e "[#]\nModulus-based euclidean algorithm result:\n$result"
4242
result=$(euclid_sub $((128 * 12)) $((128 * 77)))
43-
echo "$result"
43+
echo -e "[#]\nSubtraction-based euclidean algorithm result:\n$result"

contents/euclidean_algorithm/code/c/euclidean_example.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ int main() {
3333
int check1 = euclid_mod(64 * 67, 64 * 81);
3434
int check2 = euclid_sub(128 * 12, 128 * 77);
3535

36-
printf("%d\n", check1);
37-
printf("%d\n", check2);
36+
printf("[#]\nModulus-based euclidean algorithm result:\n%d\n", check1);
37+
printf("[#]\nSubtraction-based euclidean algorithm result:\n%d\n", check2);
3838

3939
return 0;
4040
}

contents/euclidean_algorithm/code/clisp/euclidean.lisp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@
1717
(abs a)
1818
(euclid-mod b (mod a b))))
1919

20-
(print (euclid-sub (* 64 67) (* 64 81)))
21-
(print (euclid-mod (* 128 12) (* 128 77)))
20+
(format T "[#]~%Modulus-based euclidean algorithm result:~%")
21+
(format T "~d~%" (euclid-sub (* 64 67) (* 64 81)))
22+
(format T "[#]~%Subtraction-based euclidean algorithm result:~%")
23+
(format T "~d~%" (euclid-mod (* 128 12) (* 128 77)))
2224

2325
;; Quick test
2426
(assert

contents/euclidean_algorithm/code/coconut/euclidean.coco

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,7 @@ addpattern def euclid_mod(0, b is int) = b
1515
addpattern def euclid_mod(a is int, b is int) = euclid_mod(b, a % b)
1616

1717
if __name__ == '__main__':
18-
print('Euclidean mod:', euclid_mod(64 * 67, 64 * 81))
19-
print('Euclidean sub:', euclid_sub(128 * 12, 128 * 77))
18+
print('[#]\nModulus-based euclidean algorithm result:')
19+
print(euclid_mod(64 * 67, 64 * 81))
20+
print('[#]\nSubtraction-based euclidean algorithm result:')
21+
print(euclid_sub(128 * 12, 128 * 77))

contents/euclidean_algorithm/code/cpp/euclidean.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ int main() {
3434
auto check1 = euclid_mod(64 * 67, 64 * 81);
3535
auto check2 = euclid_sub(128 * 12, 128 * 77);
3636

37-
std::cout << check1 << '\n';
38-
std::cout << check2 << '\n';
37+
std::cout << "[#]\nModulus-based euclidean algorithm result:\n" << check1 << '\n';
38+
std::cout << "[#]\nSubtraction-based euclidean algorithm result:\n" << check2 << '\n';
3939
}

contents/euclidean_algorithm/code/csharp/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ class Program
77
{
88
static void Main(string[] args)
99
{
10-
Console.WriteLine("EuclideanAlgorithm");
1110
var euclideanAlgorithm = new EuclideanAlgorithm();
1211
int check = euclideanAlgorithm.EuclidMod(64 * 67, 64 * 81);
1312
int check2 = euclideanAlgorithm.EuclidSub(128 * 12, 128 * 77);
1413

14+
Console.WriteLine("[#]\nModulus-based euclidean algorithm result:");
1515
Console.WriteLine(check);
16+
Console.WriteLine("[#]\nSubtraction-based euclidean algorithm result:");
1617
Console.WriteLine(check2);
1718
}
1819
}

contents/euclidean_algorithm/code/d/euclidean_algorithm.d

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,6 @@ void main()
3737
auto check1 = euclid_mod(64 * 67, 64 * 81);
3838
auto check2 = euclid_sub(128 * 12, 128 * 77);
3939

40-
writeln("Modulus-based euclidean algorithm result: ", check1);
41-
writeln("Subtraction-based euclidean algorithm result: ", check2);
40+
writeln("[#]\nModulus-based euclidean algorithm result:\n", check1);
41+
writeln("[#]\nSubtraction-based euclidean algorithm result:\n", check2);
4242
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"Description": "euclidean algorithm",
3+
"Delta" : 0.0,
4+
"OutputValues" : [
5+
"64",
6+
"128"
7+
]
8+
}

contents/euclidean_algorithm/code/fortran/euclidean.f90

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,18 @@ PROGRAM euclidean
3838
IMPLICIT NONE
3939
INTEGER :: a, b, euclid_sub, euclid_mod
4040

41-
a = 24
42-
b = 27
43-
WRITE(*,*) 'Subtraction method: GCD is: ', euclid_sub(a, b)
41+
a = 64 * 67
42+
b = 64 * 81
4443

45-
a = 24
46-
b = 27
47-
WRITE(*,*) 'Modulus method: GCD is: ', euclid_mod(a, b)
44+
WRITE(*,'(a)') '[#]'
45+
WRITE(*,'(a)') 'Modulus-based euclidean algorithm result:'
46+
WRITE(*, '(g0)') euclid_mod(a, b)
47+
48+
a = 128 * 12
49+
b = 128 * 77
50+
51+
WRITE(*,'(a)') '[#]'
52+
WRITE(*,'(a)') 'Subtraction-based euclidean algorithm result:'
53+
WRITE(*, '(g0)') euclid_sub(a, b)
4854

4955
END PROGRAM euclidean

0 commit comments

Comments
 (0)