1929๋ฒ ์์ ๊ตฌํ๊ธฐ (silver 3)
M์ด์ N์ดํ์ ์์๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ M๊ณผ N์ด ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค.
(1 ≤ M ≤ N ≤ 1,000,000) M์ด์ N์ดํ์ ์์๊ฐ ํ๋ ์ด์ ์๋ ์ ๋ ฅ๋ง ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
ํ ์ค์ ํ๋์ฉ, ์ฆ๊ฐํ๋ ์์๋๋ก ์์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
3 16
์์ ์ถ๋ ฅ 1
3
5
7
11
13

#include <stdio.h>
int main() { // ์๋ผํ ์คํ
๋ค์ค์ ์ฒด ์ฌ์ฉ
int start, end;
int arr[1000000] = {0};
scanf("%d %d", &start, &end);
for (int i = 0; i < 1000001; i++){
arr[i] = 1; // ๋ฐฐ์ด์ ์ธ๋ฑ์ค์ ์์๋ฅผ ๋ค 1๋ก ์ฑ์
}
for (int i = 2; i <= end; i++){
for (int j = i * 2; j <= end; j += i){
arr[j] = 0; // ์์์ ํด๋นํ์ง ์๋ ์ธ๋ฑ์ค์ ์์๋ค์ ๋ค 0์ผ๋ก ์ฑ์
}
}
for (int i = start; i <= end; i++){
if (arr[i] == 1)
printf("%d\n", i); // ๋ฐฐ์ด์ ์์๊ฐ 1์ธ ์ธ๋ฑ์ค๋ ๊ณง ์์์ ํด๋น - ์ถ๋ ฅ
}
return 0;
}
๋ฐฐ์ด ์์ด ํด๋ณด๋ ค๋ค๊ฐ ์๊ฐ ์ด๊ณผ๊ฐ ๋ผ์ ๊ตฌ๊ธ๋ง์ ํด๋ณด์๋๋ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํด์ ํ์ด์ผ ํจ์ ์๊ฒ๋์๋ค.
- ์ฐ์ m์ด์ n์ดํ์์ m์ ํด๋นํ๋ ์๋ฅผ start, n์ ํด๋นํ๋ ์๋ฅผ end๋ก ์ ์ธํด์ฃผ์๋ค.
- start์ end๋ 1์ด์ 1000000์ด๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ๊ฐ 1000000์ธ ๋ฐฐ์ด arr์ ์ ์ธํด์ฃผ๊ณ 0์ผ๋ก ์ด๊ธฐํ๋ฅผ ํด์ฃผ์๋ค.
- ๊ทธ ๋ค์ 2๋ฒ ์ธ๋ฑ์ค๋ถํฐ(์์๋ 2์ด์์ด๊ธฐ ๋๋ฌธ) ๋ฐฐ์ด์ ๋์ธ 1000000์ธ๋ฑ์ค๊น์ง ๋ฐฐ์ด์ ์์๋ฅผ ๋ค 1๋ก ์ฑ์์ฃผ์๋ค.
- ์ด์ค for๋ฌธ์ ์ฌ์ฉํด์ 2์ end์ฌ์ด์ ์ธ๋ฑ์ค์์ ์ด๋ค์ ์๋ก ๊ณฑํด์ฃผ๋ฉด์ ๋์ค๋ ์ธ๋ฑ์ค๋ ์์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ 0์ผ๋ก ์ฑ์์ฃผ์๋ค.
- ๋ง์ง๋ง์ผ๋ก start๋ถํฐ end๊น์ง์ ํด๋นํ๋ ๋ฒ์์์ arr๋ฐฐ์ด์ ์ธ๋ฑ์ค์ ํด๋นํ๋ ์์๊ฐ 1์ธ ๊ฒฝ์ฐ, ์ฆ ์์์ธ ๊ฒฝ์ฐ printf๋ฌธ์ ์ฌ์ฉํด์ ์ธ๋ฑ์ค๋ฅผ ์ถ๋ ฅํด์ฃผ์๋ค.

'๋ฐฑ์ค > C' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [C] ๋ฐฑ์ค 10828๋ฒ (0) | 2022.11.11 |
|---|---|
| [C] ๋ฐฑ์ค 1065๋ฒ (0) | 2022.11.11 |
| [C] ๋ฐฑ์ค 2164๋ฒ (0) | 2022.05.24 |
| [C] ๋ฐฑ์ค_ 7568๋ฒ (0) | 2022.05.16 |
| [C] ๋ฐฑ์ค_1676๋ฒ (0) | 2022.05.08 |