#include #include #include int gcd(int x, int y) { int r; int cnt = 0; int n; n = y; r = x % y; while (r > 0) { printf("x = %d, y = %d, r = %d\n", x, y, r); x = y; y = r; r = x % y; } printf("剰余計算の回数:%d", cnt); printf(",理論値%.0f\n", ceil(log(n) / log((1 + sqrt(5)) / 2))); return y; } int main(int argc, char *argv[]) { int a, b; if (argc <= 2) { printf("引数が足りません\n"); return 1; }; a = strtol(argv[1], NULL, 10); b = strtol(argv[2], NULL, 10); printf("gcd(%d, %d) = %d\n", a, b, gcd(a, b)); return 0; }