import random
def measure(n):
arg = []
for i in range(1, n + 1):
if n % i == 0:
arg.append(i)
return arg__
n1 = random.randint(10
0, 1000)
n2 = random.randint(100, 1000)
print(measure(n1))
print(measure(n2))
s1 = set(measure(n1))
s2 = set(measure(n2))
inter = s1 & s2
print(max(inter))
if max(inter) == 1: print(f'{n1}, {n2} 은 서로소 이다.')_
import random
n1 = random.randint(100, 1000)
n2 = random.randint(n1, 1000)
max_n = 0 #max_n 이 최대공약수이다
arg = []
for i in range(1, (n1 + 1)):
if n1 % i == 0 and n2 % i == 0:
arg.append(i)
max_n = i
print(n1, n2)
print(arg)
print(max_n)
import random
n1 = random.randint(100,1000)
n2 = random.randint(n1 + 1,1000)
tep1 = n1 ; tep2 = n2
while tep2 > 0:
tep = tep2
tep2 = tep1 % tep2
tep1 = tep
print(tep1)
숫자 a, b가 있을 때, a를 b로 나눈 나머지와 b 의최대 공약수 는 a 와 b 의 최대 공약수 가 같다는 것을 의미한다. 그럼, 계속해서 a 를 b로 나누어서 b를 a에 나눈 나머지를 b 에 대입시켜서 b 가 0이 될때 까지 반복을
하면, 남는 a 값이 바로 최대 공약수 이다.
def gcd(a, b):
while b > 0:
a, b = b, a % b
return a
파이썬 3.9 버전 이후부터 사용가능
import random
import math
n1 = random.randint(10, 100)
n2 = random.randint(n1, 100)
print(math.gcd(n1, n2))