효율적으로 약수를 구하는 방법
파이썬으로 약수(divisor) 를 구하는 방법을 살펴보겠습니다. 만들다 보니 여러수를 입력해 공약수 와 최대 공약수 까지 구하도록 확장시켜 보았습니다. 예를 들면 12의 약수는 12를 1(n)부터 12(n)까지 나누기 한 후 나머지가 0이면 n은 약수 12 / 1 = 나머지 0 이므로 1은 약수 12 / 2 = 나머지 0 이므로 2도 약수...(반복) 따라서 12를 나누어 떨어지는 수는 1, 2, 3, 4, 6, 12 입니다. 만약 12와 16의 공약수를 구한다면 12의 약수 : 1, 2, 3, 4 , 6, 12 16의 약수 : 1, 2, 4 , 8, 16 12와 16의 공약수 : 1, 2, 4 따라서, 최대공약수는 4 [여러수의 약수, 공약수, 최대공약수 구하기] 조건 위 방식을 이용해 아래 미션을 수행해 보았습니다. 100,000,000의 약수를 구하라. (일억) 방법 1 : 단순하게 1부터 약수를 구하고자 하는 수까지 반복 import time cnt = int(input('약수를 구할 횟수 입력:')) divs = [] for i in range(cnt): n = int(input('숫자 입력:')) d = [] s = time.time() for i in range(1, n+1): if n%i == 0: d.append(i) divs.append(set(d)) print(n,'의 약수 : ', *d, '소요시간 : ', time.time()-s,'(sec)') print() if cnt>1: comdiv = set.inter...