VioletaBabel

1929번: 소수 구하기 본문

백준/백준-C++
1929번: 소수 구하기
Beabletoet 2017. 5. 26. 17:41

#include <iostream>

using namespace std;

int main()

{

int a, b;

bool num[1000001];

cin >> a >> b;

num[1] = 0;

for (int i = 2; i <= b; ++i)

num[i] = 1;

for (int i = 2; i*i <= b; ++i)

{

if (num[i] == 1)

for (int j = i * i; j <= b; j += i)

num[j] = 0;

}

for (int i = a; i <= b; ++i)

if (num[i] == 1)

cout << i << endl;

}


======================


#include <cstdio>

using namespace std;

int main()

{

int a, b;

bool num[1000001];

scanf("%d %d", &a, &b);

if (a > 2 && a % 2 == 0)

++a;

if (b > 2 && b % 2 == 0)

--b;

num[1] = 0; num[2] = 1;

for (int i = 3; i <= b; i += 2)

num[i] = 1;

for (int i = 3; i*i <= b; i += 2)

{

if (num[i] == 1)

for (int j = i * i; j <= b; j += i*2)

num[j] = 0;

}

for (int i = a; i <= b; i += 2)

{

if (i < 3)

{

printf("%d\n", 2);

i = 3;

}

if (num[i] == 1)

printf("%d\n", i);

}

}

'백준 > 백준-C++' 카테고리의 다른 글

2960번: 에라토스테네스의 체  (0) 2017.05.27
5054번: 주차의 신  (0) 2017.05.26
1978번: 소수 찾기  (0) 2017.05.26
10866번: 덱  (0) 2017.05.26
11004번: K번째 수  (0) 2017.05.26
Comments