제로베이스 데이터 취업 스쿨 - 16일차(6/17)

수야·2023년 6월 17일
0

[연습문제] 예외처리(01)

def add(n1, n2) :
    if type(n1) or type(n2) == str:
        try:
         print('숫자를 넣어주세요')
        except :
         print(f'{n1} + {n2} = {n1 + n2}')


def min(n1, n2) :
    try:
        print(f'{n1} - {n2} = {n1-n2}')
    except :
        print('숫자를 넣어주세요')


def mul(n1, n2):
    if type(n1) or type(n2) == str:
        try:
         print('숫자를 넣어주세요')
        except :
         print(f'{n1} * {n2} = {n1 * n2}')



def div(n1, n2):
    try:
        if type(n1) or type(n2) == 0:
            print('0으로 나눌 수 없습니다')
    except :
        print(f'{n1} / {n2} = {n1 / n2}')



def mod(n1, n2):
    try:
        print(f'{n1} %% {n2} = {n1 % n2}')
    except:
        print('0으로 나눌 수 없습니다')

def flo(n1, n2):
    try:
        print(f'{n1} // {n2} = {n1 // n2}')
    except:
        print('0으로 나눌 수 없습니다')

def exp(n1, n2):
    try:
        print(f'{n1} ** {n2} = {n1**n2}')
    except:
        print('숫자를 입력해 주세요')

근데 나누기에
숫자 0을 넣으면 지금처럼 나오는데
글자를 넣었을때도 에러 예외 처리 하고시퍼,..
아.. 영으로 나눌떄 zerodivisionerror 있다..졸려ㅣ

약수와 소수

약수는 어떤 수를 나누어 떨어지게 하는 수
소수는 1과 본인만 나누게 할 수 있는 수

예제(약수)

사용자로부터 양의 정수를 입력받아 해당 정수의 모든 약수를 출력하는 프로그램을 작성하세요.

약수는 어떤 수를 나누어 떨어지게 하는 수를 말합니다. 예를 들어, 12의 약수는 1, 2, 3, 4, 6, 12입니다.

num = int(input("숫자 입력"))
list = []
for i in range(1,num+1):
    if num % i == 0 :
        list.append(i)
print(f'{num}의 약수 : {list}')

list라 하지말래. list라는 내장함수가 있어가지고 ㅠ

예제(소수)

주어진 숫자가 소수인지 아닌지를 판별하는 프로그램을 작성하세요. 소수는 1과 자기 자신으로만 나누어 떨어지는 수입니다.

def check(num) :
    if num<2:
        return  False
    for i in range(2,num):
        if num % i ==0:
            return False
        else:
            return True
        
num = int(input("숫자 입력"))
if check(num):
    print(f'{num}은 소수입니다')
else:
    print(f'{num}은 소수가 아닙니다')

소인수분해

수를 소인수의 곱으로 나타내자!

예제(소인수 분해)

주어진 숫자를 소인수로 분해하는 프로그램을 작성하세요. 소인수 분해란 주어진 수를 소수로만 나누어 떨어지는 인수들로 분해하는 것을 말합니다.

num = int(input('숫자를 입력하세요'))


def Cal(num) :
    divisor = 2
    lisDivisor = []
    while divisor <= num :
        if num % divisor == 0 :
            lisDivisor.append(divisor)
            num = num // divisor
        else:
            divisor+=1
    return lisDivisor

factors = Cal(num)
resultFactors =set(factors)
print(f'{num}의 소인수는 {resultFactors}입니다')

예제(소인수 분해)

주어진 수를 소인수분해하는 코드를 작성해보세요.
주어진 수의 소인수 중에서 가장 큰 소인수를 찾는 코드를 작성해보세요.
주어진 수의 소인수들의 합을 구하는 코드를 작성해보세요.

num = int(input('숫자를 입력하세요'))

def Cal(num):
    div = 2
    divList = []
    while div <= num:
        if num % div == 0:
            divList.append(div)
            num = num // div
        else:
            div += 1
    return divList

result = set(Cal(num))
print(f'{num}의 소인수는 {result}이다.')

resultMax = max(result)
print(f'{num}의 소인수중 가장 큰 수 는 {resultMax}이다.')

sumResult = sum(result)
print(f'{num}의 소인수의 합은  {sumResult}이다.')

예제(소인수분해)

주어진 수의 모든 약수를 찾아서 출력하는 코드를 작성해보세요.
주어진 수의 소인수들을 구한 후, 각 소인수의 지수를 구하는 코드를 작성해보세요.

num = int(input('숫자를 입력하세요'))

def Cal(num):
    divList = []
    for i in range(1,num+1):
        if num % i == 0 :
            divList.append(i)
    return divList

result = Cal(num)
print(f'{num}의 약수 {result}')

def InCal(num) :
    div = 2
    IndivList = []
    while div <= num:
        if num % div == 0:
            IndivList.append(div)
            num = num // div
        else:
            div += 1
    return IndivList
result2 = InCal(num)
print(f'{num}의 소약수 {result2}')

def exCal(num) :
    thisReulstList = InCal(num)
    exponents = {}

    for div in thisReulstList:
        if div in exponents:
            exponents[div] += 1
        else:
            exponents[div] = 1
    return exponents
result3 = exCal(num)
print(f'{num}의 소약수:지수 {result3}')
 

profile
수야는 코린이에서 더 나아갈거야

0개의 댓글