반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[백준] 1929번 | 소수 구하기 | C++ 본문
728x90
반응형
문제 링크: https://www.acmicpc.net/problem/1929
문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
내 풀이
소수 여부를 판단하는 수가 최대 1,000,000이므로, 각각의 수가 소수인지 미리 판단해둔다.
소수인지 판단하는 방법은 각 수의 배수를 확인하는 것이다.
코드
#include<iostream>
#define len 1000001
int A, B;
int prime[len];
int find_prime() {
prime[1] = 1;
for (int y = 2; y <= B; y++) {
if (prime[y] == 0){
for (int x = 2 * y; x <= B; x += y) {
prime[x] = 1;
}
}
}
return 0;
}
int main() {
scanf("%d %d", &A, &B);
find_prime();
for (int t = A; t <= B; t++) {
if (prime[t] == 0) printf("%d\n", t);
}
return 0;
}
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[백준] 2011번 | 암호코드 | C++ (0) | 2021.12.08 |
---|---|
[백준] 1932번 | 정수 삼각형 | C++ (0) | 2021.12.06 |
[백준] 1915번 | 가장 큰 정사각형 | Python (0) | 2021.12.01 |
[백준] 1904번 | 01타일 | Python (0) | 2021.11.29 |
[백준] 1850번 | 최대공약수 | C++ (0) | 2021.11.25 |
Comments