>⛹️♀️ 제로베이스 데이터취업스쿨 15기 스터디노트 8(5.12.)
🗂️ 오늘(5.12.) 수강한 분량
기초수학 1 ~ 4
🗂️ 기초수학 1 ~ 4 핵심 내용 정리
- 약수 : 어떤 수를 나누어 떨어지게 하는 수
- 소수 : 1과 자신만을 가지는 수(단, 1은 제외)
약수> 조건식 사용 for number in range(1, (inputNumber + 1)): if inputNumber % number == 0: → 나머지가 0인 숫자 찾기 소수> for문 → flag 사용 → 조건식 사용 for number in range(2, (inputNumber + 1)): flag = Ture for n in range(2, number): if number % n == 0: flag = False break if (flag): print(~)
- 소인수 : 약수 중에서 소수인 숫자
- 소인수분해 : 1보다 큰 정수를 소인수의 곱으로 나타낸 것, 약수를 정확하고 쉽게 구할 수 있음
n = 2 while n <= inputNumber: if inputNumber % n == 0: #소인수분해 과정 print('소인수 : {}'.format(n)) inputNumber /= n #몫을 재할당 n = 2 searchNumber = []
- 공약수 : 2개 이상의 수에서 공통된 약수
- 최대공약수 : 공약수 중 가장 큰 수
for i in range(1, (num1 + 1)): if num1 % i == 0 and num2 % i = 0: print('공약수 : {}'.format(i)) maxNum = i #최대공약수 print('최대공약수' : {}'.format(maxNum))
- 유클리드호제법 : x,y의 최대공약수 = y,r(x%y)의 최대공약수
temp1 = num1; temp2 = num2 while temp2 > 0: temp = tmep2 temp2 = temp1 % temp2 temp1 = temp print('{}, {}의 최대공약수 : {}'.format(num1, num2, temo1)) for n in range(1, (temp1 +1)): if temp1 % n == 0: print('{}, {}의 공약수' : {}'.format{num1, num2, n})
- 최소공배수 : 최대공약수를 이용하여 최소공배수를 구할 것
minNum = (num1 * num2) // maxNum print('최소공배수 : {}'.format(minNum) newNum = minNum for i in range(1, (newNum + 1)): if newNum % i == 0 and num3 % i == 0: maxNum = 1 print('최대공약수 : {}'.format(maxNum)) minNum = (newNum * num2) // maxNum print('최소공배수 : {}'.format(newNum)) # 3개 이상의 최소공배수 구하기 : # 2개의 수에 대한 최소공배수를 구한 후 다시 3번째, 4번째~로 공배수 구할 것
- 진법 : 특정 숫자 몇 개를 사용하여 수를 표시
★ 진수 변환 결과는 문자열 <classs 'str'>
진법 변환 함수 함수이름 표현 1 표현 2 10진수 변경(10진수 : 30) 2진수 binary format(bin(num)) format(num, #b) format(int('0b11110',2)) 8진수 octal format(oct(num)) format(num, #o) format(int('0o36',8)) 16진수 hecadecimal format(hex(num)) format(num, #x) format(int('0x1e',16)) - 수열 : 규칙성을 가지고 나열되어 있는 수들
- 수열 합
an = sn -s(n-1) (단, n>=2 크고 a1 = s1)
- 등차수열 : 연속된 두 항의 차이가 일정한 수열
- 등차수열 규칙성 이용 일반항 구하기
an = a1 + (n-1)*d
- 등차중항 : 연속된 세 항에서 가운데 항
# 등차수열 원리 이용 while n <= inputN: if n == 1: valueN = inputN1 print('{}번째 항의 값 : {}'.format(n, valueN)) n += 1 continue valueN += inputD print('{}번째 항의 값 : {}'.format(n, valueN)) n += 1 print('{}번째 항의 값 : {}'.format(inputN, valueN)) # 등차수열 공식 이용 : an = a1 + (n-1)d / sn = n(a1 + an) / 2 valueN = inputN1 + (inputN - 1) * inputD print('{}번째 항의 값 : {}'.format(inputN, valueN))
- 등비수열 : 연속된 두 항의 비가 일정한 수열
- 등비수열 규칙성 이용 일반항 구하기
an = a1 * r^(n-1)
- 등비중항 : 연속된 세 항에서 가운데 항
# 등비수열 원리 이용 while n <= inputN: if n == 1: valueN = inputN1 print('{}번째 항까지의 합 : {}'.format(n, sumN)) n += 1 continue valueN *= inputR sumN += valueN print('{}번째 항까지의 합 : {}'.format(n, valueN)) print('{}번째 항까지의 합 : {}'.format(sumN, valueN)) # 등비수열 공식 이용 : sn = a1 * (1 - r^n) / (1 - r) sumN = inputN1 * (1 - (inputR ** inputN)) / (1 - inputR) print('{}번째 항까지의 합 : {}'.format(inputN, (int(sumN))) #int: 나누기 수행시 float로 반환됨으로 정수로 보기 위함
👩🚀 스터디 감정 노트
중학교때 배웠던 내용이 나와서 반가웠다!
근데 파이썬을 이용해서 구현하려니까 색다른 느낌이였다.
[이미지 출처 : 미리캔버스]