소수 구하기 예제 - 1
Last updated
Last updated
m(시작 수) n(종료 수)
A(소수 리스트)
for n 반복:
A 리스트 초기화 # 각각의 인덱스값으로
for n의 제곱근까지:
소수가 아니면 넘어감
for 소수의 배수 값을 n까지:
현재 수가 소수가 아니라는 것을 표시
for m ~ n:
A에서 소수인 값 출력import math
m, n = map(int, input().split())
A = [0] * (n + 1)
for i in range(2, n+1):
A[i] = i
for i in range(2, int(math.sqrt(n)) + 1):
if A[i] != 0:
for j in range(i + i, n + 1, i):
A[j] = 0
result = []
for i in range(m, n + 1):
if A[i] != 0:
result.append(str(A[i]))
print("\n".join(result))import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int m = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
int[] A = new int[n + 1];
for (int i = 2; i <= n; i++) {
A[i] = i;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (A[i] != 0) {
for (int j = i * 2; j <= n; j += i) {
A[j] = 0;
}
}
}
StringBuilder sb = new StringBuilder();
for (int i = m; i <= n; i++) {
if (A[i] != 0) {
sb.append(A[i]).append("\n");
}
}
System.out.println(sb);
}
}