Skip to main content

Command Palette

Search for a command to run...

두 수의 gcd를 구하는 파이썬 스크립트

Published
1 min readView as Markdown

과제 때문에 작성한 스크립트인데 블로그 포스트로 괜찮을 것 같아서 올린다.

gcd.py:

# -*- coding: utf-8 -*-

import argparse


def gcd(a, b):
    mx = max(a, b)
    mn = min(a, b)
    d = mx // mn
    rest = mx % mn
    assert (d * mn + rest) == mx
    if rest == 0:
        return mn
    return gcd(mn, rest)


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("a", type=int)
    parser.add_argument("b", type=int)
    args = parser.parse_args()
    v = gcd(args.a, args.b)
    print(v)


if __name__ == '__main__':
    main()

사용법 (cli)

$ python gcd.py 6 81
3

$ python ./gcd.py 25 100
25

사용법 (module)

from gcd import gcd

print(gcd(6, 81)​) // 3
print(gcd(100, 25)​) // 25

구현

Euclidean algorithm을 이용했다.

More from this blog

Labor0를 만든 이유

사람이 병목이 되는 횟수를 줄이기 AI 에이전트 세션을 많이 실행하는 것 자체는 어렵지 않다. 내가 해결하고 싶었던 문제는 세션이 늘어날 때마다 사람이 모든 진행 상황을 확인하고 관리해야 한다는 점이었다. 사람을 병목에서 완전히 빼는 게 목표는 아니다. 사람은 여전히 병목이다. 대신 사람이 개입해야 하는 횟수를 줄이고, 실제로 결정이 필요한 순간에만 사람을

Aug 22, 20265 min read

작업 기록: 자동 QA 구성

최근에 Zephyr Cloud 의 프로젝트에 자동 QA 시스템을 구성했다. 그 작업 기록이다. 원래 이런 작업은 리눅스에서 하는 게 맞다고 생각했다. 그런데 나는 계속 로컬에서 디버깅해야 했고, 개발 흐름상 맥에서 바로 돌릴 수 있어야 했다. 예전에도 자동 QA를 시도한 적은 있었지만 끝까지 제대로 굴러간 적은 없었다. 그러다가 지난주 중반쯤, “이건 로

May 13, 20263 min read

kdy1: The way I think

305 posts