티스토리 뷰

반응형

 

오늘은 직접 소수를 판별하고, 소수가 아닌 경우 소인수분해를 한 후 밑과 지수를 구해보도록 하겠습니다!

[중학수학 1-1] 

'인수', '소인수', '소인수분해'

 

<기본 지식>
인수: 15 = 5 x 3에서 5와 3을 15의 약수 또는 인수라고 함
소인수: 인수 중 소수인 것 (1, 2, 7, 14는 모두 14의 약수이자 인수인데, 이 중 2와 7이 14의 소인수이다.)
소인수분해: 자연수를 소인수(소수이면서 인수)들만의 곱으로 나타내는 것

 

 

문제: 임의의 수를 입력하였을 때
1. 소수인지 아닌지 판단하라
2. 소인수 분해 후 '밑 지수' 형태로 출력하라

 

print("input a number:")
input_num = int(input())
prime_dict = {}

'''주석: 소수 판별'''
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)
'''주석: 판별 결과 표시. 소수는 True, 아닐 경우 False'''
print(result)

count = 0
count = int(count)


'''주석: False일 경우 소인수 분해 후 밑과 지수 표시'''
if(result == False):
    for i in range(2, input_num+1):
        while(input_num%i == 0):
            count +=1
            input_num = input_num/i
            if(input_num%i != 0):
                print(i, count)
                count *= 0
                break
주요 부분 설명

1. 입력 값을 받고 소수 판단을 먼저 수행

2. range(a, b)는 a라는 수부터 b라는 수 '미만'이므로
   2부터 입력 값까지 소인수 분해를 위해서 input_num+1을 한다.

3. 소수로 나누어 지는 동안 (while(input_num%i == 0):)
   count에 +1을 하며 지수를 구한다.
   
4. 입력값을 나눈 후에는 나누어진 값을 다시 입력 값에 저장한다.
   input_num = input_num/i
   
5. 현재 소수로 나누어지지 않는다면 print(i, count)로 
   현재 소수와 지수를 표현 후 break로 while문 중지

결과: 36 입력 시 소수가 아니므로 'False'후 밑 2 지수 2, 밑 3 지수 3으로 출력

 

중학 수학을 하면서 제가 항상 드는 생각이 있습니다.
만약 내가 중학교로 돌아가서 코딩을 알았다면 수학을 더 좋아하지 않았을까?

중학생 시절 항상 수학을 공부하면서 들었던 생각은
내가 이걸 공부하는 이유가 시험을 잘 보려고만 공부하는 것인가?
실제로 내가 배운 이 지식을 어디에 써야할까
다른 곳에 배운 지식을 활용하는 법이 무엇일까 고민했었던 기억이 납니다.

저는 코딩을 모르던 시절에도 수학을 좋아했지만, 
코딩을 알게 되었다면 수학을 좋아하는 것이 아니라 조금 더 사랑하지 않았을까?라는 생각이 드네요.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함