💊약수코드

inputNum = int(input('0보다 큰 정수 입력 : '))

for number in range(1,(inputNum + 1)):
    if inputNum % number == 0:
        print(f'{inputNum}의 약수 : {number}')

💊소수와 합성수

inputNum = int(input('0보다 큰 정수 입력 : '))

for number in range(1,(inputNum+1)):
    flag = True
    for n in range(2,number):
        if number % n == 0:
            flag = False
            break

    if (flag):
        print(f'{number} : 소수!!')
    else:
        print(f'{number} : 합성수!!')

💊소인수

inputNum = int(input('1보다 큰 정수 입력'))

n = 2
while n<=inputNum:
    if inputNum % n == 0:
        print('소인수: {}'.format(n))
        inputNum /= n
    else:
        n += 1

💊최대공약수 & 최소공배수

num1 = int(input('1보다 큰 정수 입력 : '))
num2 = int(input('1보다 큰 정수 입력 : '))
maxNum = 0

for i in range(1,(num1+1)):
    if num1 % i == 0 and num2 % i == 0:
        print('공약수 : {}'.format(i))
        maxNum = i

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

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

💊진수변환

  • 2진수 - bin
  • 8진수 - oct
  • 10진수 - int
  • 16진수 - hex
dNum = 30

#진수 표현
print('2진수: {}'.format(bin(dNum)))
print('8진수: {}'.format(oct(dNum)))
print('16진수: {}'.format(hex(dNum)))

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

print('{0:#b},{0:#o},{0:#x}'.format(dNum,dNum,dNum))

print('type of bin(dNum): {}'.format(type(format(dNum,'#b'))))
print('type of bin(dNum): {}'.format(type(format(dNum,'#o'))))
print('type of bin(dNum): {}'.format(type(format(dNum,'#x'))))

#진수 변환
print('2진수(ob11110) ->10진수({})'.format(int('0b11110',2)))
print('8진수(0o36) ->10진수({})'.format(int('0o36',8)))
print('16진수(0x1e) ->10진수({})'.format(int('0x1e',16)))

print('2진수(ob11110) ->10진수({})'.format(int(0b11110)))
print('2진수(ob11110) ->8진수({})'.format(oct(0b11110)))
print('2진수(ob11110) ->16진수({})'.format(hex(0b11110)))

print('8진수(0o36) ->2진수({})'.format(bin(0o36)))
print('8진수(0o36) ->10진수({})'.format(int(0o36)))
print('8진수(0o36) ->16진수({})'.format(hex(0o36)))

print('16진수(0x1e) ->2진수({})'.format(bin(0x1e)))
print('16진수(0x1e) ->8진수({})'.format(oct(0x1e)))
print('16진수(0x1e) ->10진수({})'.format(int(0x1e)))

💊공차수열

  • d: 공차, a1 = 공차수열의 시작값, n = 공차수열의 마지막값
  • 공차수열의 값: value = a1+(n-1)*d
  • 등차수열의 합: sn = n(a1+an)/2
inputN1 = int(input('a1입력 : '))
inputD = int(input('공차입력 : '))
inputN = int(input('n입력 : '))



valueN = 0
n = 1
while n <= inputN:

    if n == 1:
        valueN = inputN1 + ((inputN-1)*inputD)
        print('{}번째 항의 값 : {}'.format(inputN,valueN))
        n += 1

# 등차수열 합
valueN = inputN1 + (inputN-1)*inputD
sumN = inputN * (inputN1+valueN)/2
print('{}번째 항까지의 값 : {}'.format(inputN,sumN))

💊공비수열

  • r: 공비, a1 = 공차수열의 시작값, n = 공차수열의 마지막값
  • 등비수열 값 공식 : an = a1 * r^(n-1)
  • 등비수열 합 공식 : sn = a1*(1-r^n)/(1-r)
inputN1 = int(input('a1 입력 : '))
inputR = int(input('공비 입력 : '))
inputN = int(input('n 입력 : '))

# 항의 값
valueN = inputN1 * (inputR**(inputN-1))
print('{}번째 항의 값 : {}'.format(inputN,valueN))

# 항의 합
sumN = inputN1 * (1-(inputR**inputN))/(1-inputR)
print('{}번째 항까지의 값 : {}'.format(inputN,int(sumN)))

💊계차수열

  • 계차수열의 값 : an = n^2 + n + 1
inputAN1 = int(input('a1 입력 : '))
inputAN = int(input('an 입력 : '))

inputBN1 = int(input('b1 입력 : '))
inputBD = int(input('bn 공차 입력 : '))

valueAN = (inputAN**2) + inputAN + 1
print('bn 의{}항의 값 : {} '.format(inputAN,valueAN))

💊피보나치 수열

inputN = int(input('n 입력 : '))

valueN = 0
sumN = 0

valuePreN2 = 0
valuePreN1 = 0

n = 1

while n <= inputN:
    if n == 1 or n == 2:
        valueN = 1
        valuePreN2 = valueN
        valuePreN1 = valueN
        sumN += valueN
        n += 1

    else:
        valueN = valuePreN2 + valuePreN1
        valuePreN2 = valuePreN1
        valuePreN1 = valueN
        sumN += valueN
        n += 1

print('{}번째 항의 값 : {}'.format(inputN,valueN))
print('{}번째 항까지의 합 : {}'.format(inputN,sumN))

💊팩토리얼

inputN = int(input('n 입력 : '))

result  = 1

for n in range(1,inputN+1):
    result *= n
print('{} 팩토리얼: {}'.format(inputN,result))

💊순열 코드

  • 순열 공식 : n!/(n-r)!
  • 아래 코드의 경우, n부터 n-r까지 하나씩 감소시켜가며 모든 값을 곱한다.
numN = int(input('numN 입력 : '))
numR = int(input('numR 입력 : '))
result = 1

for n in range(numN,(numN-numR),-1):
    print('n : {}'.format(n))
    result = result * n

print('result : {}'.format(result))

💊원순열 코드

  • 원순열 공식: (n-1)!
  • 아래 코드의 경우, 파이썬은 n을 입력하면 n-1이 출력되므로, (n-1)!의 공식이 맞다
n = int(input('친구 수 입력 : '))
result  = 1

for i in range(1,n):
    result *= i

print('result : {}'.format(result))

💊조합과 확률

  • 조합 : nCr => n!/r!(n-r)! or (n-r)!/r!

  • 확률 : (nCr*nCr)/nCr (해당 조합의 곱을 총 조합으로 나누어 백분률로 계산)
    =>Ex)

  • 아래 코드는 조합+확률계산까지 포함

#8c3
numN = int(input('numN 입력: '))
numR = int(input('numR 입력: '))
resultP = 1
resultR = 1
resultC = 1

for n in range(numN, (numN-numR), -1):
    print('n : {}'.format(n))
    resultP = resultP * n

print('resultP: {}'.format(resultP))

for n in range(numR, 0, -1):
    print('n : {}'.format(n))
    resultR = resultR * n

print('resultR: {}'.format(resultR))

resultC = int(resultP / resultR)
print('resultC: {}'.format(resultC))

result = (1/resultC)*100
print('{}%'.format(round(result, 2)))

0개의 댓글