728x90
자연수 n이 주어졌을 때 n이 소수인지 아닌지 알아보려면 어떻게 해야 할까?
2부터 n-1까지 n을 나눠보면 된다.
하지만 다시 잘 생각해보면 굳이 n-1까지 가지 않아도 알 수 있다.
n / 2까지만 나눠보면 소수인지 아닌지 판별이 가능하다.
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
cin >> n;
int* numbers = new int[n];
for (int i = 0; i < n; i++) {
cin >> numbers[i];
}
int count = 0;
for (int i = 0; i < n; i++) {
if (numbers[i] == 1) {
}
else if (numbers[i] == 2) {
count++;
}
else {
bool flag = false;
for (int j = 2; j <= numbers[i] / 2; j++) {
if (numbers[i] % j == 0) {
flag = true;
break;
}
}
if (!flag) count++;
}
}
cout << count;
return 0;
}
728x90
'알고리즘 문제' 카테고리의 다른 글
[백준] 10828번 스택 (0) | 2020.01.31 |
---|---|
[백준] 10814번 나이순 정렬 (0) | 2020.01.30 |
[백준] 4673번 셀프 넘버 (0) | 2020.01.30 |
[백준] 11722번 가장 긴 감소하는 부분 수열 (0) | 2020.01.29 |
[백준] 11568번 민균이의 계략 (0) | 2020.01.29 |