문제 링크 : https://www.acmicpc.net/problem/1978
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
한 주 동안 알고리즘 문제를 풀면서 3-4개 정도의 소수 찾기 응용 문제를 마주쳤다. 특히 며칠 전 4898 베르트랑 공준 문제때문에 꽤나 머리가 아팠었기 때문에...
이제 이런 소수 문제를 보면 어느정도는 감이 잡힌다 ㅠ
제출답안
n = int(input())
arr = list(map(int,input().split()))
count = len(arr)
for i in arr:
if i == 1:
count -= 1
for j in range(2,i):
print("i :", i)
if i % j == 0:
count -= 1
break
print(count)
주어진 수 n개를 모두 소수일 것이다라고 가정 한 후 len(arr)을 변수로 둔 뒤, 소수인지 체크한 다음 소수가 아니면 count에서 1씩 뺀다.
그러면 소수인것만 남게 된다.
제출하기 직전 빼먹었던 부분은 소수문제 풀때 가장 중요한 1이다. 1은 소수가 아니기 때문에 for loop 돌기 전에 미리 체크해야한다.
'Computer Programming > Python' 카테고리의 다른 글
[Python] pymongo, dnspython 프레임워크를 이용한 insert | find | update | delete 코드 (0) | 2023.05.12 |
---|---|
[Python] MongoDB를 위한 프레임워크 pymongo, dnspython 실행 중 오류 (Mac 유저!) (0) | 2023.05.12 |
[Python] - venv 가상환경 접속하기, 필요성과 설치법 (0) | 2023.05.10 |