Greatest common divisor: Difference between revisions
Content added Content deleted
imported>Skywalk (Purebasic code was wrong.) |
|||
Line 1,632: | Line 1,632: | ||
==={{header|PureBasic}}=== |
==={{header|PureBasic}}=== |
||
====Iterative==== |
====Iterative==== |
||
<syntaxhighlight lang="purebasic"> |
<syntaxhighlight lang="purebasic"> |
||
Import "" ;msvcrt.lib |
|||
⚫ | |||
AbsI(Quad.q) As "_abs64" |
|||
⚫ | |||
AbsL(Long.l) As "labs" |
|||
⚫ | |||
EndImport |
|||
⚫ | |||
Procedure.i GCD(u.i, v.i) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
Wend |
Wend |
||
ProcedureReturn |
ProcedureReturn AbsI(u) ; Avoid float conversion with Abs(u). |
||
EndProcedure |
EndProcedure |
||
Debug GCD(18, 12) ; 6 |
|||
Debug GCD(1071, 1029) ; 21 |
|||
====Recursive==== |
|||
Debug GCD(3528, -3780) ; 252 |
|||
<syntaxhighlight lang="purebasic">Procedure GCD(x, y) |
|||
⚫ | |||
Protected r |
|||
r = x % y |
|||
If (r > 0) |
|||
y = GCD(y, r) |
|||
EndIf |
|||
ProcedureReturn y |
|||
⚫ | |||
==={{header|QuickBASIC}}=== |
==={{header|QuickBASIC}}=== |