새소식

데이터분석/셋째주

기초수학 : 소인수, 소인수분해

  • -
728x90

 

소인수 분해는 어떤 수 소인수의 곱으로 나타낼때, 약수를 찾을때 많이 씀.

소인수

소인수 = 소수 + 인수(=약수)

약수(=인수)중에서 소수인 숫자를 소인수라고 한다.

20의 약수(인수)      1     2     4     5     10     20  
       │            │
       ▽            ▽
     소수         소수
      └─┬─┘
               ▽
            소인수
  • 12의 인수: 1, 2, 3, 4, 6, 12      소인수: 2, 3
  • 36의 인수: 1, 2, 3, 4, 9, 12, 18, 36      소인수: 2, 3
  • 25의 인수: 1, 5, 20      소인수: 5
  • 41의 인수: 1, 41      소인수: 41

 

 

 

소인수분해

1보다 큰 정수를 소인수의 곱으로 나타낸 것을 소인수분해라고 한다.

20의 소인수분해   








  2    ×    10   
                │
                ▽
                 2    ×    5    
───────────
           
  2    ×    2    ×    5  
           
   2^2 ×  5                   
  • 12의 인수: 1, 2, 3, 4, 6, 12      소인수: 2, 3
    12의 소인수분해: 2^2 × 3

  • 36의 인수: 1, 2, 3, 4, 9, 12, 18, 36      소인수: 2, 3
    36의 소인수분해: 2^2 × 3^2

  • 25의 인수: 1, 5, 20      소인수: 5
    25의 소인수분해: 5^2

  • 41의 인수: 1, 41      소인수: 41
    41의 소인수분해: 41

 

 

 

 

728x90

소인수분해와 약수

소인수분해를 이용해서 약수를 정확하고 쉽게 구할 수 있다.

20의 소인수분해   
   2^2 ×  5       
20의 약수(인수)   
















   2^2 ×  5       
           
       ×   │    5   
───┼───────
   2^2  

           
       ×   │    1       5   
───┼───────
     1        1       5   
     2        2      10  
   2^2     4      20  

           
  1     2     4     5     10     20     

 

[실습]

다음의 수를 소인수분해를 통해서 약수를 구해보자.

  • 14       →  소인수분해: 2 × 7 
                         ×  │ 1     7
                     ──┼────
                          1  │ 1     7
                          2  │ 2    14
                      약수(인수) : 1, 2, 7, 14

  • 154     →   소인수분해: 2 × 77 ─▷ 2  ×  7  ×  11
                             ×  │ 1         11
                     ───┼─────
                            1    │ 1         11
                           2    │ 2        22
                           7    │ 7        77
                       2 × 7 │ 14    154
                      약수(인수) : 1, 2, 7, 11, 14, 22, 77, 154

  • 1547   →   소인수분해: 7 × 221 ─▷ 7 × 13 × 17
                             ×  │ 1         17
                     ───┼─────
                              1    │ 1        17
                             7    │ 7       119
                           13    │ 13    221
                       7 × 13 │ 91    1547
                      약수(인수) : 1, 7, 13, 17, 91, 119, 221, 1547

  • 2025   →   소인수분해: 5 × 405 ─▷ 5 × 5 × 81 ─▷ 5 × 5 × 3 × 27  ─▷ 5 × 5 × 3 × 3 × 9
                                             ─▷ 5 × 5 × 3 × 3 × 3 × 3  ─▷ 5^2 × 3^4
                           ×  │ 1        3        9        27         3^4
                     ───┼──────────────────
                           1   │ 1        3         9         27         81      
                          5   │ 5       15       45       135     405
                       5^2 │ 25    75     225     675    2025
                      약수(인수) : 1, 3, 5, 9, 15, 25, 27, 45, 75, 81, 135, 225, 405, 675, 2205

 

 

 

 

파이썬 이용

파이썬을 이용해서 사용자가 입력한 수를 소인수분해해보자.

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

n = 2

while n <= inputNumber:
	if inputNumber % n == 0:
		print('소인수: {}'.format(n))
		inputNumber /= n
	else:
    	n += 1
-- 출력 --
1보다 큰 정수 입력: 12
소인수: 2
소인수: 2
소인수: 3

 

반응형

[실습]

72에 x를 곱하면 y의 제곱이 된다고 할때, x에 해당하는 가장 작은 정수를 구하자.

72의 소인수분해 : 2 × 36 → 2 × 2 × 18 → 2 × 2 × 2 × 9 → 2 × 2 × 2 × 3 × 3 → 2^3 × 3^2
72에 x를 곱하면 y의 제곱이 된다.






2^3 × 3^2 × ? = ?^2     
제곱이 홀수이면, y의제곱으로 묶을수 없으므로, 제곱을 짝수로 만들어 준다.
     ↓
2^3 × 3^2 × 2  = ?^2
     ↓
2^4 × 3^2  = ?^2
     ↓
2^4 × 3^2  =  (2^2 × 3)^2

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

n = 2

searchNumbers = []

# 제곱이 홀수이면, y의제곱으로 묶을수 없으므로, 값을 추가해서 제곱을 짝수로 만들어줄 수 있다.
# 그러므로 제곱이 홀수로 떨어질 소수를 찾아야한다.

while n <= inputNumber:
	if inputNumber % n == 0:
		print('소인수: {}'.format(n))
                
		if searchNumbers.count(n) == 0:		# 값이 없으면 (홀수) 리스트에 추가
			searchNumbers.append(n)
		elif searchNumbers.count(n) == 1:	#값이 있으면 (짝수) 리스트에서 삭제
			searchNumbers.remove(n)
		
		inputNumber /= n	#몫으로 나눈 나머지 저장
        
	else:
		n += 1

print('searchNumbers: {}'.format(searchNumbers))
-- 출력 --
 

 

 

 

 

 

 

반응형

'데이터분석 > 셋째주' 카테고리의 다른 글

기초수학 : 최대공약수  (0) 2023.10.19
기초수학 : 약수와 소수  (0) 2023.10.18
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.