python - 기초 수학 : 데이터 취업 스쿨 스터디 노트 11/13

slocat·2023년 11월 13일
0

start-data

목록 보기
10/75

약수 divisor

num = 20
divisor = []

for i in range(1, num+1):
    if num % i == 0:
        divisor.append(i)

print(f'{num}의 약수: {divisor}')

>>>
20의 약수: [1, 2, 4, 5, 10, 20]

소수 prime number

num = 20
primeNum = []
compositeNum = []

for i in range(2, num+1):
    flag = True

    for j in range(2, i):
        if i % j == 0:
            flag = False
            break

    if flag:
        primeNum.append(i)
    else:
        compositeNum.append(i)

print(f'{num}까지의 소수: {primeNum}')
print(f'{num}까지의 합성수: {compositeNum}')

>>>
20까지의 소수: [2, 3, 5, 7, 11, 13, 17, 19]
20까지의 합성수: [4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20]

소인수분해 prime factorization

num = 20
primeFactorization = []

n = 2
while n <= num:
    if num % n == 0:
        primeFactorizarion.append(n)
        num /= n
    else:
        n += 1

print(f'소인수: {primeFactorization}')

>>>
소인수: [2, 2, 5]

최대공약수 the greatest common divisor

num1 = 36
num2 = 12
commonDivior = []
maxCommonDivisor = 0

for i in range(1, num1+1):
    if num1 % i == 0 and num2 % i == 0:
        commonDivior.append(i)
        maxCommonDivisor = i

print(f'{num1}, {num2}의 공약수: {commonDivior}')
print(f'최대공약수: {maxCommonDivisor}')

>>>
36, 12의 공약수: [1, 2, 3, 4, 6, 12]
최대 공약수: 12

최소공배수 the least common multiple

# 10 = 2 * 5
# 12 = 2 * 2 * 3
# 최대공약수 = 2

num1 = 10
num2 = 12
maxCommonDivisor = 0

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

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

>>>
최소공배수: 60

2진수, 8진수, 16진수

num = 10
# 방법 1
print(bin(num)) # 0b
print(oct(num)) # 0o
print(hex(num)) # 0x

# 방법 2
print(format(num, '#b'))
print(format(num, '#o'))
print(format(num, '#x'))

# 방법 3
print('{0:#b}, {0:#o}, {0:#x}'.format(num, num, num))

# x진수 -> 10진수
print(int('0b1010', 2))
print(int('0o12', 8))
print(int('0xa', 16))

등차 수열 arithmetic sequence

# an = a1 + (n - 1) * d
# sn = n * (a1 + an) / 2

a1 = 2
d = 3
num = 7

value = a1 + (num - 1) * d
sum = num * (a1 + value) / 2
print(f'{num}번째 항의 값: {value}')
print(f'7번째 항까지의 합: {int(sum)}')

>>>
7번째 항의 값: 20
7번째 항까지의 합: 77

등비 수열 geometric sequence

# an = a1 * r ** (n - 1)
# sn = a1 * (1 - r ** n) / (1 - r)

a1 = 2
r = 2
num = 7

value = a1 * (r ** (num - 1))
sum = a1 * (1 - (r ** num)) / (1 - r)
print(f'{num}번째 항의 값: {value}')
print(f'{num}번째 항까지의 합: {int(sum)}')

>>>
7번째 항의 값: 128
7번째 항까지의 합: 254

🚗 기초수학 파트에 진입했다.
중급 문제가 몇 개 남았는데, 시간이 꽤 걸려서 하루에 1~2문제씩 천천히 풀어보려고 한다.

🚕 내일은 기초수학 문제풀이까지 마무리하는 게 목표!

0개의 댓글