소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수이다.
* 1은 소수가 아니다
어떤 수가 소수인지 확인하기 위해서는 n보다 작은 수로 나누어지는지 확인해보면 된다.
2부터 n까지 모두 확인해도 되지만 사실 √ n 까지만 확인하면 된다. 왜냐하면 수가 수를 나누기 위해서는 그 몫이 항상 필요하며, 나누는 수와 몫 중 하나는 반드시 √ n 이하이기 때문이다.
√ 108 = 약 10.33이다.
만약 2 ~ √ n 까지 나눠보았는데 나눠지지 않는다면 소수라고 할 수 있다.
1978번 - 소수 찾기
https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
|
T = int(input())
cnt = T
num = map(int, input().split())
for n in num:
if n == 1: cnt -= 1
i = 2
while i * i <= n:
if n % i == 0:
cnt -= 1
break
else:
i += 1
print(cnt)
|
cs |
i의 제곱이 n이 작을 때까지만 확인하면 소수인지 확인할 수 있다.
참고한 사이트
https://ko.wikipedia.org/wiki/%EC%86%8C%EC%88%98_(%EC%88%98%EB%A1%A0)
소수 (수론) - 위키백과, 우리 모두의 백과사전
좌측은 소수, 우측은 합성수. ...소수란 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수다. 소수(素數, 발음: [소쑤], 문화어: 씨수, 영어: prime number)는 1보다 큰 자연수 중 1과 자기 자신만
ko.wikipedia.org
'알고리즘' 카테고리의 다른 글
백준 - 11653번 (0) | 2021.08.05 |
---|---|
백준 - 2581번, 1929번 / 소수 (0) | 2021.08.05 |
백준 - 1011번 (0) | 2021.08.03 |
백준 - 2775번 / 함수의 호출 횟수(counter) (0) | 2021.08.03 |
백준 - 10250번 (0) | 2021.08.03 |