티스토리 뷰

반응형

SW 개발회사를 다니면서 종종 '내가 태어나서 이때까지 배운 수학 내용을 코딩할 수 있는가?'라는 질문이 머리속을 항상 머물고 있었습니다.

다시 공부하자니 재미도 없는 것 같고.. 어떻게 공부하지라는 스스로의 질문에 대해 내놓은 답은
'중학수학부터 공부하고 코딩해보자!' 라는 답을 가지게 되었습니다.

오늘부터 중학수학 전과정을 마무리할 때까지 각 커리큘럼의 중요내용을 모두 코딩을 해보도록 하겠습니다.

 

[중학수학 1-1] 

'소인수분해'

 

소인수분해를 하기전 가장 중요한 '소수'에 대해 알아보고 가겠습니다.


*소수의 특징
1. 1보다 큰 자연수 중에서 1과 자기 자신만을 약수로 가지는 수
2. 약수가 2개인 자연수 (1과 자기자신)
3. 소수 중 짝수는 2밖에 없고 나머지는 전부 홀수!
4. 소수가 아닌 수는 '합성수' 
5. 1은 소수도 아니고 합성수도 아니다!

*주의사항
소수(Prime) = 2, 3, 5, 7, 11... ☜우리가 배울 내용
소수(Decimal) = 0.1, 0.2, 0.3...

 

문제: 임의의 수를 입력하여 소수인지 아닌지 True와 False로 표현하라
print("input a number:")
input_num = int(input())


def prime_check(input_num):   
    check = 0
    check = int(check)
    if(input_num < 2):
        return 1    
    for i in range(2, input_num):
        if(input_num%i == 0):
            check = check + 1
        elif(input_num%i != 0):            
            check = check
    if(check >= 1):
        return False
    else:
        return True
            

        
result = prime_check(input_num)
print(result)
주요 부분 설명

1. input으로 받아온 데이터를 int()함수로 데이터 형변환을 한다.

2. 1을 받아올 경우 ' <2 '를 사용하여 바로 1로 return한다.

3. range의 범위는 2부터 입력 값 바로 앞까지
   = 소수는 1과 자기자신을 제외한 수라고 하였으므로
      1과 자기자신을 제외한 수로 나누어진다면 소수가 아니다.

4. 나누어지는 횟수를 확인하여 check수가 1이상이라면 False를 출력

5. 횟수가 0이라면 True를 출력!

 

다들 소인수분해는 어떠셨나요?
코드는 하나의 언어로써 답을 표현하는 방식과 논리의 구조는 다를 수 있습니다.
답을 찾아가면서 다양하게 코딩해보시기를 추천드립니다 ^^

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함