
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
38
39
40
41
42
43
44
45
46
47
|
#include <string>
#include <vector>
using namespace std;
bool PrimeNumb(int a)
{
//i*i = 제곱근은 소수가 아님
//3 * 3 = 9 //홀수 곱하기 홀수 = 홀수 [1, 3, 9 소수 아님]
// 3 * 4 = 12 // 홀수 곱하기 짝수 = 짝수
// 4 * 4 = 16 // 짝수 곱하기 짝수 = 짝수
for (int i = 3; i * i <= a; i += 2)
{
//// 나머지가 0이면 소수가 아님
if (a % i == 0)
return false;
}
return true;
}
int solution(int n)
{
//1은 소수가 아니며, 2는 무조건 소수이다.
int answer = 1;
for (int i = 3; i <= n; i += 2) //2를 제외한 2의 배수는 모두 소수가 아니다.
{
if (PrimeNumb(i))
answer++;
}
return answer;
}
void main()
{
int n = 100;
solution(n);
}
|
전제를 세운다.
1. 1은 소수가 아니다.
2. 2는 무조건 소수이다.
3. 2를 제외한 2의 배수는 무조건 소수가 아니다.
'코딩테스트 연습' 카테고리의 다른 글
코딩 테스트 - 시저 암호 (0) | 2020.01.13 |
---|---|
코딩 테스트 - 문자열을 정수로 바꾸기 (0) | 2020.01.13 |
코딩테스트 - 문자열 내림차순으로 배치하기 (0) | 2020.01.13 |
코딩테스트 - 문자열 다루기 기본 (0) | 2020.01.13 |
코딩테스트 - 문자열 내 p와 y의 개수 (0) | 2020.01.10 |