sliver__

백준 - 소수 구하기(1929) 본문

CS/알고리즘

백준 - 소수 구하기(1929)

sliver__ 2021. 11. 18. 14:45
728x90

https://www.acmicpc.net/problem/1929

 

1929번: 소수 구하기

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

www.acmicpc.net

 

소수 구하기

 

주어진 두 숫자 범위 내의 소수를 구하는 문제입니다.

 

std::cout 과 printf 의 속도차이를 느낄 수 있던 문제입니다.

 

아래는 제출한 코드입니다.

#define _CRT_SUCURE_NO_WARNINGS
#include <stdio.h>

int arr[1000010];

void getPrime()
{
	arr[1] = 0;
	for (int i = 2; i*i < 1000010; i++)
	{
		for (int j = i+i; j <= 1000010; j += i)
		{
			if (arr[j] == 1) arr[j] = 0;
		}
	}
}


int main(void)
{
	int m, n;
	scanf("%d %d", &m, &n);
	for (int i = 0; i < 1000010; i++) arr[i] = 1;
	getPrime();
	for (int i = m; i <= n; ++i)
	{
		if (arr[i] == 1) printf("%d\n", i);
	}
}

 

728x90

'CS > 알고리즘' 카테고리의 다른 글

백준 - 골드바흐의 추측(9020)  (0) 2021.11.18
백준 - 베르트랑 공준(4948)  (0) 2021.11.18
백준 - 소인수분해(11653)  (0) 2021.11.18
백준 - 소수(2581)  (0) 2021.11.18
백준 - 소수찾기(1978)  (0) 2021.11.18
Comments