1978번 - 소수 찾기
소수를 찾는 방법 (에라토스테네스의 체 배우기 전)
소수 : 약수가 1과 자신 밖에 없는 수
*첫번째 방법
2 ~ 자기자신-1 까지 다 나눠서 나누어 떨어지면 소수가 아니다. O(N)
*두번째 방법
2 ~ 자기자신/2 까지 다 나눠서 나누어 떨어지면 소수가 아니다. O(N/2)
*세번째 방법
2~ 루트 자기자신 까지 다 나눠서 나누어 떨어지면 소수가 아니다. O(루트N)
<정답 코드>
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 31 32 33 34 35 36 37 | #include<iostream> using namespace std; int checkPrimeNum(int num) { if (num < 2) { return 0; } for (int i = 2; i*i <= num; i++) { if (num%i == 0) { return 0; } } return 1; } int main() { int N; int ans = 0; cin >> N; for (int i = 0; i < N; i++) { int tmp; cin >> tmp; ans += checkPrimeNum(tmp); } cout << ans << endl; return 0; } | cs |
반응형