BOJ 2942 퍼거슨과 사과
3849 단어 2021.02.052021.02.05
https://www.acmicpc.net/problem/2942
시간 1초, 메모리 128MB
input :
- R G(1 ≤ R, G ≤ 1,000,000,000)
output :
- 사과를 받게되는 선수의 수 N과 나누어 주는 빨간 사과의 수 X와 초록 사과의 수 Y를 출력
최대 공약수를 구하고.
공약수의 약수를 이용해서 r, g를 나눈 값들을 출력해주어야 한다.
최대 공약수를 gcd를 통해서 구하고, 에라토스테네스의 체 쓰는 것처럼 해서. 로 공약수의 약수를 구하자.
import sys
from math import sqrt
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
r, g = map(int, sys.stdin.readline().split())
factor = gcd(r, g)
factor_list = set()
for i in range(1, int(sqrt(factor) + 1)):
if factor % i == 0:
factor_list.add(i)
factor_list.add(factor // i)
for item in factor_list:
print(item, r // item, g // item)
Author And Source
이 문제에 관하여(BOJ 2942 퍼거슨과 사과), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsin2475/BOJ-2942-퍼거슨과-사과저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)