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

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

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

C


#include <stdio.h>

int gcdf(int vx, int vy)
{
return (vy == 0 ? vx : gcdf(vy, vx % vy));
}

int gcd(int va, int vb)
{
return (va > vb ? gcdf(va, vb) : gcdf(vb, va));
}

int main(int argc, char* argv[])
{
int n1 = 8;
int n2 = 22;
printf("%dと%dの最大公約数は%dです。\n", n1, n2, gcd(n1, n2));

return 0;
}

実行結果

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