[파이썬 중급] DAY17

김유미·2023년 6월 25일

Python

목록 보기
11/16

기초수학3 : 최대공약수

import random
num1= random.randint(100,1000)
num2= random.randint(100,1000)

print(f'num1:{num1}')
print(f'num2:{num2}')

maxNum = 0
for n in range(1,min(num1,num2)+1):
    if num1 % n == 0 and num2 % n == 0:
        print(f'공약수:{n}')
        maxNum = n
print(f'최대공약수: {maxNum}')

if maxNum == 1 :
    print(f'{num1}과 {num2}는 서로소이다.')

기초수학4 : 최소공배수

import random
num1= random.randint(100,1000)
num2= random.randint(100,1000)

print(f'num1:{num1}')
print(f'num2:{num2}')
num1List = []
num2List = []
i = 0
minNum = 0
flag = True
  for i in range(0, i):
        num1 = num1 * (i+1)
        num1List.append(num1)
        i += 1
  for n2 in range(0, 1000000):
        num2 = num2 * (n+1)
        num2List.append(num2)
        n += 1
        if num1List.count(num2List) == 1:
        flag = False
        break
        minNum = num2
print(f'최소공배수: {minNum}')

ㄴ 구하다가 포기... ㅠㅠ

최소공배수구하는 더 간단한 방법: 최소공배수는 최대공약수를 구한 뒤
num1과 num2를 곱한 뒤 최대공약수로 나눈 몫을 구하면 된다.

import random
num1= random.randint(100,1000)
num2= random.randint(100,1000)

print(f'num1:{num1}')
print(f'num2:{num2}')

maxNum = 0
for n in range(1,min(num1,num2)+1):
    if num1 % n == 0 and num2 % n == 0:
        print(f'공약수:{n}')
        maxNum = n
print(f'최대공약수: {maxNum}')

minNum = (num1 * num2) // maxNum
print(f'최소공배수: {minNum}')

기초수학5 : 진법


num = int(input('10진수 입력: '))
print('2진수: {}'.format(bin(num)))
print('8진수: {}'.format(oct(num)))
print('16진수: {}'.format(hex(num)))
profile
시작의 즐거움

0개의 댓글