GUZAI3ノートブック

友人であるGUZAI3様の依頼で備忘録を書いています。

C言語で再帰関数を使わずに最大公約数(GCD)を求める

定番であるユークリッドの互除法で。

#include <stdio.h>

int main() {
  unsigned int num1 = 1029;  // GCDを求めたいペアのひとつ
  unsigned int num2 = 1071;  // GCDを求めたいペアのひとつ

  // GCD計算
  unsigned int a = num1;
  unsigned int b = num2;
  unsigned int rem = a % b;  // 余り:Reminder
  while (rem) {
    a = b;
    b = rem;
    rem = a % b;
  }

  printf("gcd(%u,%u) = %u\n", num1, num2, b);
  return 0;
}

コンパイラgcc 7.4.0