[백준 파이썬 2981번]검문★약수구하기 연습★규칙알아내기
2022. 10. 22. 20:01
728x90
반응형
import sys
import math
N = int(sys.stdin.readline())
maxs=0
A = []
for i in range(N):
a = int(sys.stdin.readline())
A.append(a)
A= sorted(A)
res = []
for i in range(1,len(A)):
if i==1:
maxs = A[i]-A[i-1]
maxs = math.gcd(A[i]-A[i-1] , maxs)
for i in range(1,int(maxs**0.5)+1):
if maxs%i == 0:
if ( (i**2) != maxs) :
res.append(maxs // i)
if i!=1:
res.append(i)
print(*sorted(list(set(res))))
숫자 8 34 38 입력시 :
36과 8의 차이 = 28
28과 28의 최대공약수 : 28
38과 34의 차이 = 4
28과 4의 최대공약수 = 4
4의 약수 ==> 2 4
728x90
반응형
'Python(백준) > 정수론 및 조합론' 카테고리의 다른 글
[백준 파이썬 2609번]최대공약수와 최소공배수★gcd,lcm★유클리드함수★ (0) | 2022.10.24 |
---|---|
[백준 파이썬 2004번]조합0의 개수★★ (0) | 2022.10.24 |
[백준 파이썬 1037번]약수 (0) | 2022.10.24 |
[백준 파이썬 5086번]배수와 약수 (0) | 2022.10.24 |
[백준 파이썬 3036번]링★최대공약수★ (0) | 2022.10.23 |