[21401][伯俊/BOJ]救出1929号小数
1555 ワード
質問する
にゅうしゅつりょく
に答える
小数は1と自分の数だけを意味します.逆に、いくつかの倍数は少数ではありません.それを活用したのはエラトネスのふるいです.エラトニスのふるいは自分以外の自分の排水を除いて、少数の方法を探しています.
従って、エラトネスのふるいで問題を解決することができる.
https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4
コード#コード#
#include <bits/stdc++.h>
using namespace std;
#define SIZE 1000002
bool p_list[SIZE];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int m, n;
cin >> m >> n;
for (int i = 2; i <= n; ++i) // 0과 1은 0으로 나머지는 1로 초기화
p_list[i] = 1;
for (int i = 2; i <= n; ++i) // 2부터 입력값까지
{
if (p_list) // true 라면
{
// i가 2라면 4 6 8 10.. 0
// i가 3이라면 6 9 12 15.. 0
// i가 k라면 2*k 3*k 4*k.. 0
// 이렇게 자기 자신의 2배 값부터 지워나감
for (int j = 2 * i; j <= n; j += i)
p_list[j] = 0;
}
}
for (int i = m; i <= n; ++i)
if (p_list[i])
cout << i << ' ';
}
Reference
この問題について([21401][伯俊/BOJ]救出1929号小数), 我々は、より多くの情報をここで見つけました https://velog.io/@kwkim95/210331백준BOJ-1929번-소수-구하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol