새소식

데이터분석/셋째주

기초수학 : 약수와 소수

  • -
728x90

 

약수

어떤 수를 나누어 나머지 없이 떨어지게 하는 수

 

   2   
2 ÷ 1 = 2
2 ÷ 2 = 1


   3   
3 ÷ 1 = 3
3 ÷ 3 = 1


   8   
8 ÷ 1 = 8
8 ÷ 2 = 4
8 ÷ 4 = 2
8 ÷ 8 = 1
   9   
9 ÷ 1 = 9
9 ÷ 3 = 3
9 ÷ 9 = 1

 2의 약수: 1, 2 

 3의 약수: 1, 3 

 8의 약수: 1, 2, 4, 8 

 9의 약수: 1, 3, 9 

   15   
15 ÷ 1 = 15
15 ÷ 3 = 5
15 ÷ 5 = 3
15 ÷ 15 = 1


   22   
22 ÷ 1 = 22
22 ÷ 2 = 11
22 ÷ 11 = 2
22 ÷ 22 = 1


   104   
104 ÷ 1 = 104
104 ÷ 2 = 52
104 ÷ 4 = 26
104 ÷ 8 = 13
104 ÷ 13 = 8
 
 15의 약수: 1, 3, 5, 15 

 22의 약수: 1, 2, 11, 22 

 104의 약수: 1, 2, 4, 8, 13,
                        26, 52, 104 
 

 

 

파이썬 이용

사용자가 입력한 숫자의 약수를 출력해보자.

 

# 나머지가 0인 숫자 찾기

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

for num in range(1, (inputNumber + 1)):
	if inputNumber % num == 0:	#나머지가 0일때
		print('{}의 약수: {}'.format(inputNumber, num))
-- 출력 --
0보다 큰 정수 입력: 30
30의 약수: 1
30의 약수: 2
30의 약수: 3
30의 약수: 5
30의 약수: 6
30의 약수: 10
30의 약수: 15
30의 약수: 30

 

 

 

 

소수

1과 자신 이외의 어떤 수로도 나머지 없이 떨어지게 나누어지지 않는 수

1과 그 수 자신만을 약수로 가지는 수

단, 1은 소수에서 제외한다.

 

   2   
2 ÷ 1 = 2
2 ÷ 2 = 1

   3   
3 ÷ 1 = 3
3 ÷ 3 = 1

   4   
4 ÷ 1 = 2
4 ÷ 2 = 2
4 ÷ 4 = 1
   5   
5 ÷ 1 = 5
5 ÷ 5 = 1

 2의 약수: 1, 2 
 2는 소수이다. 

 3의 약수: 1, 3 
 3는 소수이다. 


 4의 약수: 1, 2, 4 
 4는 소수가 아니다. 


 5의 약수: 1, 5 
 5는 소수이다. 


   7  
7 ÷ 1 = 7
7 ÷ 7 = 1
   11  
11 ÷ 1 = 11
11 ÷ 11 = 1
   13   
13 ÷ 1 = 13
13 ÷ 13 = 1
   17   
17 ÷ 1 = 17
17 ÷ 17 = 1
 7의 약수: 1, 7 
 7는 소수이다. 

 11의 약수: 1, 11 
 11는 소수이다. 

 13의 약수: 1, 13 
 13는 소수이다. 
 17의 약수: 1, 17 
 17는 소수이다. 

 

 

[실습]

1부터 30까지의 숫자 중 5로 나눈 몫과 나머지가 모두 소수인 숫자들을 찾아보자.

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

  • 조건에 맞는 몫 구하기 : 5로 나누었을때 몫으로 나올 수 있는 소수를 찾는다.
    2, 3, 5
  • 조건에 맞는 나머지 구하기 : 5보다 작은 소수를 찾는다. (5로 나눈 후의 나머지이니까..)
    2, 3
  • 조건에 맞는 값 구하기 : [ 5 x 몫 ]에 나머지를 더한다.
    5 x 2 + 2 = 12
    5 x 2 + 3 = 13
    5 x 3 + 2 = 17
    5 x 3 + 3 = 18
    5 x 5 + 2 = 27
    5 x 5 + 3 = 28

12 13 17 18 27 28

 

 

 

 

[실습]

1부터 30까지의 숫자 중 소수를 찾아보자.

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

  • 1제외
  • 2는 소수
  • 2를 제외한 2의 배수 제거
  • 3은 소수
  • 3을 제외한 3의 배수 제거
  • 5는 소수
  • 5를 제외한 5의 배수 제거
  • 7은 소수
  • 7을 제외한 7의 배수 제거
  • 11은 소수
  • 11을 제외한 11의 배수 제거

2 3 5 7 11 13 17 19 23 29

 

 

 

파이썬 이용

파이썬을 이용해서 사용자가 입력한 숫자까지의 소수를 출력해보자.

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

for num in range(2, (inputNumber + 1)):	#입력한 숫자까지의 숫자
	flag = True
	for n in range(2, num):
		if num % n  == 0:	#1과 자신이외에 약수가 하나라도 있으면 소수가 아니기 때문에
			flag = False
			break
	if (flag):
    	print('{} : 소수'.format(num))
	else:
    	print('{} : 합성수'.format(num))	#소수의 반대말
-- 출력 --
0보다 큰 정수 입력: 10
2 : 소수
3 : 소수
4 : 합성수
5 : 소수
6 : 합성수
7 : 소수
8 : 합성수
9 : 합성수
10 : 합성수

 

 

 

 

합성수

약수가 1과 자신이외에 더 있어서 3개 이상인 수

소수의 반대

 

 

반응형

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

기초수학 : 최대공약수  (0) 2023.10.19
기초수학 : 소인수, 소인수분해  (0) 2023.10.19
Contents

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

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