▷ 오늘 학습 내용: 기초수학 강의(문풀 1~3)
import random
randN = random.randint(100,1000)
# 약수
for i in range(1, randN+1):
if randN % i == 0:
print('약수: {}'.format(i))
# 소수
for i in range(2, randN+1):
flag = True
for num in range(2,i):
if i % num == 0:
flag = False
break
if (flag):
print('소수: {}'.format(i))
# 소인수
n=2
while n <= randN:
if randN % n == 0:
print('소인수: {}'.format(n))
randN /= n
continue
else:
n+=1
import random
rNum = random.randint(100,1000)
print(rNum)
result = []
n=2
while n <= rNum:
if rNum % n == 0:
print('소인수: {}'.format(n))
result.append(n)
rNum /= n
else:
n += 1
tempNum = 0
for s in result:
if tempNum != s:
print(f'{s}의 개수: {result.count(s)}')
tempNum = s
import random
rNum1 = random.randint(100,1000)
rNum2 = random.randint(100,1000)
print('rNum1: {}, rNum2: {}'.format(rNum1, rNum2))
for i in range(1, min(rNum1,rNum2)+1):
if rNum1 % i == 0 and rNum2 % i == 0:
print('공약수: {}'.format(i))
maxNum = i
print('최대공약수: {}'.format(maxNum))
if maxNum == 1:
print(f'{rNum1}과 {rNum2}는 서로소이다.')
num1 = int(input('a1 입력: '))
d = int(input('공차 입력: '))
inputNum = int(input('n 입력: '))
valueN = 0
sumN = 0
n=1
while n <= inputNum:
if n == 1:
valueN = num1
sumN += valueN
n+=1
continue
valueN += d
sumN += valueN
n += 1
print('{}번째 항: {}'.format(inputNum, valueN))
print('{}번째 항까지의 합: {}'.format(inputNum, sumN))
num1 = int(input('a1 입력: '))
r = int(input('공비 입력: '))
inputNum = int(input('n 입력: '))
sumN = 0
valueN = 0
n=1
while n <= inputNum:
if n == 1:
valueN = num1
sumN += valueN
n += 1
continue
valueN *= r
sumN += valueN
n += 1
print('{}번째 항: {}'.format(inputNum, valueN))
print('{}번째 항까지의 합: {}'.format(inputNum, sumN))
inputN = int(input('n 입력: '))
valueN = 0; sumN = 0
preN1 = 0; preN2 = 0
n=1
while n <= inputN:
if n == 1 or n == 2:
valueN = 1
preN1 = valueN
preN2 = valueN
sumN += valueN
n += 1
else:
valueN = preN1 + preN2
preN2 = preN1
preN1 = valueN
sumN += valueN
n += 1
print('{}번째 항의 값: {}'.format(inputN, valueN))
print('{}번째 항까지의 합: {}'.format(inputN, sumN))
n = 1; nCnt = 1
searchNC = 0; searchNP = 0; sumN = 0
flag = True
while flag:
for i in range(1, n+1):
print('{}/{} '.format(i, n-i+1)), end='')
sumN += i/(n-i+1)
nCnt += 1
if sumN > 100:
searchNC = i
searchNP = n-i+1
flag = False
break
print()
n += 1
print(f'{nCnt}항일 때 값: {searchNC}/{searchNP}, 합: {sumN}')
inputN = int(input('N입력: '))
inputR = int(input('R입력: '))
resultP = 1; resultR = 1; resultC = 1
# 순열
for i in range(inputN, inputN-inputR, -1):
resultP *= i
# 팩토리얼
for j in range(inputR, 0, -1):
resultR *= j
# 조합
resultC = int(resultP/resultR)
print(resultC)
📝 수학 공식 외우는 것과 파이썬 코딩은 또 다르다는 것을 느꼈다. 반복문이랑 함수는 이미 배웠는데도 그렇게 능숙하지는 않았다. 강의 보면서 이해 했다고 넘어가지 말고 계속 풀어봐야겠다.
📝 기초수학 퀴즈 소감
대체적으로 개념을 묻는 문제가 많이 나왔다. 객관식인데 모두 고르라는 문제에서 조금 더 고민하긴 했지만 난이도는 높지 않았던 것 같다.
▷ 내일 학습 계획: 자료구조 강의(1~4)