Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 기계학습
- XSS Game
- Javascript
- 웹페이지 만들기
- PHP 웹페이지 만들기
- c
- SWEA
- 풀이
- C언어
- 머신러닝
- 숙명여자대학교 정보보안동아리
- BOJ
- The Loard of BOF
- 파이썬
- hackctf
- HTML
- hackerrank
- Sookmyung Information Security Study
- 드림핵
- BOJ Python
- CSS
- siss
- 생활코딩
- WarGame
- 자료구조 복습
- 숙명여자대학교 정보보안 동아리
- lob
- Python
- c++
- 백준
Archives
- Today
- Total
혜랑's STORY
[BOJ_C] 1929번 본문
- 문제
- 풀이
#include <stdio.h>
#include <stdlib.h>
int main(){
int m, n;
scanf("%d %d",&m, &n);
int* prime = (int*)malloc(sizeof(int)*(n+1));
for(int i=0; i<=n; i++)
prime[i] = 0;
prime[0] = 1, prime[1] = 1;
for(int i=2; i<=n; i++){
if(!prime[i]){
for(int j=2; i*j<=n; j++){
prime[i*j] = 1;
}
}
}
for(int i=m; i<=n; i++)
if(!prime[i])
printf("%d\n", i);
return 0;
}
문제에서 m에서 n사이의 소수를 모두 출력하라 했으므로, n+1만큼 prime이라는 배열을 만들고 0으로 초기화한다. (이때 n+1만큼 만들어주는 이유는 소수를 출력할 때 조금 더 편하게 하기 위해서 이다. 별로 큰 뜻은 없음.) 그 뒤, 소수에 포함되지 않는 0과 1을 소수가 아니라는 뜻으로 1을 대입해 준다. 앞으로 소수가 아닌 수엔 1을 대입하여 표시할 것이다.(일종의 플래그)
이제 준비과정은 끝났다. 본격적으로 소수를 구할 것인데, 2부터 n까지 prime[i]가 소수라면 i*j가 n과 같거나 작을 때 까지 해당 수의 자리에 1을 넣어 소수가 아니라는 것을 표시한다. 이를 i가 n보다 커질 때까지 반복하면 소수는 0으로 소수가 아닌 수는 1으로 표시되어 있을 것이다.
마지막으로 m과 n사이의 소수인 수 즉, prime[i]가 0을 가지는 수를 출력해주면 된다.
- 실행결과
'무지성 공부방 > 알고리즘 해결' 카테고리의 다른 글
[BOJ_C] 1259번 (0) | 2021.02.26 |
---|---|
[BOJ_C] 10989번 (0) | 2021.02.08 |
SW Expert Academy [D1] (0) | 2020.09.17 |
[BOJ_Python] 6603번 (0) | 2020.08.05 |
[BOJ_C] 14889번 (0) | 2020.08.03 |