📝 문제
> 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/1978
🎨 풀이
💡 성공 코드
import sys
def sosu (num):
if num == 1 :
return 0
for i in range(2,num):
if num % i == 0:
return 0
return 1
n = int(input())
arr = list(map(int, sys.stdin.readline().split()))
cnt = 0
for i in range(len(arr)):
cnt += sosu(arr[i])
print(cnt)
> 핵심 : 소수 함수 따로 만들었음~! 하나씩 나눠주면서 보기 (시간 제한 넉넉함)
# main
1. n을 입력받는다.
2. arr에도 수를 입력받는다.
3. arr에 있는 수 하나씩 sosu 체크 함수를 돌린다.
# sosu
4. 받아온 수가 1이라면 0을 리턴한다.
5. 2부터 num - 1 까지 for문 돌리면서 num을 나눠준다.
- 1로 나누면 안됨!!!!! 무조건 2부터~
6. 만약 나눴는데 0으로 나누어 떨어진다면 소수가 아니라는 뜻이기 때문에 return 0을 해준다.
7. for문이 아무 문제 없이 끝났다면 return 1을 해준다.
- 나누어 떨어지는 수가 없다는 뜻이기 때문!
끝~
⭐ 느낀점
> 기본수학 1 에바라서 기본수학 2로 넘어왔다. ㅠㅠ. 이건 좀 할만하네,,, 다행이다잉. 파이팅이다 ^_^
'알고리즘 공부 > 백준' 카테고리의 다른 글
[DAY 099_백준] 11653번 - 소인수분해 (파이썬) (0) | 2022.06.29 |
---|---|
[DAY 098_백준] 2581번 - 소수 (파이썬) (0) | 2022.06.28 |
[백준] 2839번 - 설탕 배달 (파이썬) (0) | 2022.06.25 |
[백준] 10757번 - 큰 수 A+B (파이썬) (0) | 2022.06.24 |
[백준] 2292번 - 벌집 (파이썬) (0) | 2022.06.23 |