The euclidean algorithm for computing the greatest common divisor, can be used to find a number both left and right can be divided by.
The challenge is solving the follow problem: Two plots of land with areas of 23,500 m² (square meters) and 14,100m² (square meters) are divided into lots, as large as possible, all in the same area. The total number of lots obtained, is: Please implement this using static method. Remember a static method does not need an instance to be called |
Pas2JS pascal source code
unit E;
interface
uses
SmartCL.System;
type
Utilities = class
public
class method GCD(left, right: Integer): Integer;
end;
implementation
{ Utilities }
class method Utilities.GCD(left, right: Integer): Integer;
begin
// repeat everything from begin to end as long as right is not 0.
while right <> 0 do begin
// defines a new variable that returns left modulus right.
var rem := left mod right;
// sets left to right.
left := right;
// sets right to the earlier calculated remainder.
right := rem;
end;
// return the left value.
exit left;
end;
end.
{ filename: umain.pas }
var x : Integer;
begin
x:= Utilities.GCD(23500, 14100);
WriteLn(x); // //solution: 4700
end;
end;