Sha256: b323174c8a4eefa895d77b954cfd785134da1c31eb76fcb02827ab301babc7ad

Contents?: true

Size: 645 Bytes

Versions: 201

Compression:

Stored size: 645 Bytes

Contents

unit uCollatzconjecture;

interface
uses System.SysUtils;

type
  EIllegalNumber = class(Exception);

  function collatzSteps(aNumber: integer): integer;

implementation

function collatzSteps(aNumber: integer): integer;

  function computeCollatzValue(aValue: integer): integer;
  begin
    if odd(aValue) then
      result := aValue * 3 + 1
    else
      result := aValue div 2;
  end;

begin
  if aNumber <= 0 then
    raise EIllegalNumber.Create('error: Only positive numbers are allowed');

  result := 0;
  while (aNumber > 1) and (result < 1000) do
  begin
    aNumber := computeCollatzValue(aNumber);
    inc(result);
  end;
end;

end.

Version data entries

201 entries across 201 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.179 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.178 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.177 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.176 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.175 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.174 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.173 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.172 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.171 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.170 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.169 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.167 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.166 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.165 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.164 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.163 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.162 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.161 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas
trackler-2.2.1.160 tracks/delphi/exercises/collatz-conjecture/uCollatzconjectureExample.pas