https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
# 주어진 수중에서 소수가 몇개인지 찾는 문제
# 소수: 1과 자기 자신만을 약수로 가지는 문제
# 정수 1은 소수로 치지 않는다.
# 시간복잡도는 N^2이 된다.
def sosu_counter(n): # 일일이 전부 나눠보는 문제
if n==1:
return 0
cnt=0
for i in range(1,n+1):
if n%i==0:
cnt+=1
if cnt==3:
return 0
return 1
import sys
N = int(sys.stdin.readline())
Table=list(map(int, sys.stdin.readline().split()))
cnt=0
for king in Table:
if sosu_counter(king) == 1:
cnt+=1
print(cnt)
<알고 넘어가야 하는점>
소수는 약수가 2개이다. 1과 자기 자신 이 점을 활용해서 함수를 구현하였다.
'백준 알고리즘 문제풀이' 카테고리의 다른 글
[Python] 1966번: 프린터 큐 (0) | 2023.01.01 |
---|---|
[Python] 1920번: 수 찾기 (0) | 2023.01.01 |
[Python] 2164번: 카드2 (0) | 2023.01.01 |
[Python] 2609번: 최대공약수와 최소공배수 (0) | 2023.01.01 |
[Python] 1347번: 미로 만들기 (0) | 2023.01.01 |