Greatest common divisor: Difference between revisions
Content added Content deleted
(→{{header|Euphoria}}: Euphoria examples added) |
(→{{header|Ursala}}: Add UNIX Shell and C Shell.) |
||
Line 2,180: | Line 2,180: | ||
=={{header|TI-83 BASIC}}, {{header|TI-89 BASIC}}== |
=={{header|TI-83 BASIC}}, {{header|TI-89 BASIC}}== |
||
gcd(A,B) |
gcd(A,B) |
||
=={{header|UNIX Shell}}== |
|||
{{works with|Bourne Shell}} |
|||
<lang bash>gcd() { |
|||
# Calculate $1 % $2 until $2 becomes zero. |
|||
until test 0 -eq "$2"; do |
|||
# Parallel assignment: set -- 1 2 |
|||
set -- "$2" "`expr "$1" % "$2"`" |
|||
done |
|||
# Echo absolute value of $1. |
|||
test 0 -gt "$1" && set -- "`expr 0 - "$1"`" |
|||
echo "$1" |
|||
} |
|||
gcd -47376 87843 |
|||
# => 987</lang> |
|||
==={{header|C Shell}}=== |
|||
<lang csh>alias gcd eval \''set gcd_args=( \!*:q ) \\ |
|||
@ gcd_u=$gcd_args[1] \\ |
|||
@ gcd_v=$gcd_args[2] \\ |
|||
while ( $gcd_v != 0 ) \\ |
|||
@ gcd_t = $gcd_u % $gcd_v \\ |
|||
@ gcd_u = $gcd_v \\ |
|||
@ gcd_v = $gcd_t \\ |
|||
end \\ |
|||
if ( $gcd_u < 0 ) @ gcd_u = - $gcd_u \\ |
|||
echo $gcd_u '\' |
|||
gcd -47376 87843 |
|||
# => 987</lang> |
|||
=={{header|Ursala}}== |
=={{header|Ursala}}== |