最大公約数を求める (再帰)

明解C言語 入門編 > 8. いろいろなプログラムを作ってみよう >

最大公約数を求める (再帰)

Delphi


program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

function gcdf(vx:Integer; vy:Integer):Integer;
begin
if vy = 0 then
result := vx
else
result := gcdf(vy, vx mod vy);
end;

function gcd(va:Integer; vb:Integer):Integer;
begin
if va > vb then
result := gcdf(va, vb)
else
result := gcdf(vb, va);
end;

procedure main();
var
n1, n2: Integer;
begin
n1 := 8;
n2 := 22;
writeln(format('%dと%dの最大公約数は%dです。', [n1, n2, gcd(n1, n2)]));
end;

begin
main;
end.

実行結果

S:\>lesson064\Project1.exe
22と8の最大公約数は2です。