제로베이스 기초수학(5~10)

ningbbang·2023년 3월 26일
0

Zerobase DS13

목록 보기
6/48

1. 최대공약수
1) 공약수 : 두 개 이상의 수의 공통된 약수
2) 최대공약수 : 공약수 중 최대값
ex)
36, 60의 최대공약수 : 12
12, 52, 82의 최대공약수 : 4

소인수의 거듭제곱 또는 주어준 수를 소수로 나눠 최대공약수를 구할 수 있음

#2개 수의 최대공약수
num1 = int(input('1보다 큰 정수 입력'))
#num2가 num1보다 클 것
num2 = int(input('1보다 큰 정수 입력'))
maxNum = 0

for i in range(1, (num1+1)):
    if num1 % i == 0 and num2 % i == 0:
        maxNum = i

print(f'최대공약수 : {maxNum}')

2. 최소공배수
1) 공배수 : 두 개 이상의 수에서 공통된 배수
2) 최소공배수 : 공배수 중 최소값
ex)
6, 12, 15의 최소공배수 : 60
5, 7의 최소공배수 : 35

소인수의 거듭제곱 또는 주어준 수를 소수로 나눠 최대공약수를 구할 수 있음

#2개 수의 최소공배수
num1 = int(input('1보다 큰 정수 입력'))
#num2가 num1보다 클 것
num2 = int(input('1보다 큰 정수 입력'))
maxNum = 0

for i in range(1, (num1+1)):
    if num1 % i == 0 and num2 % i == 0:
        maxNum = i

minNum = (num1 * num2) // maxNum

print(f'최대공약수 : {maxNum}')
print(f'최소공배수 : {minNum}')

3. 진법
진법 : 특정 숫자 몇 개를 사용하여 수를 표시하는 방법
ex) 2, 8, 10, 16진수

dNum = 100

print('2진수 : {}'.format(bin(dNum)))	#format(dNum, #b) #{0:#b}
print('8진수 : {}'.format(oct(dNum)))	#format(dNum, #o) #{0:#o}
print('16진수 : {}'.format(hex(dNum)))	#format(dNum, #x) #{0:#x}

print('type of bin(dNum) : {}'.format(type(bin(dNum))))
print('type of oct(dNum) : {}'.format(type(oct(dNum))))
print('type of hex(dNum) : {}'.format(type(hex(dNum))))

※ 결과값
2진수 : 0b1100100
8진수 : 0o144
16진수 : 0x64
type of bin(dNum) : <class 'str'>
type of oct(dNum) : <class 'str'>
type of hex(dNum) : <class 'str'>

0b : 2진수
0o : 8진수
0x : 16진수

2진수 변환 : format(int('진수형태의 숫자', x진수값))

print('10진수 0b1100100 변환 : {}'.format(int('0b1100100',2)))

※ 결과값
2진수 0b1100100 변환 : 100

profile
HR Anaylist!

0개의 댓글