- 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다.
- 소수가 되는 수의 배수를 지우면 남은 건은 소수만 된다
- 자기 자신을 제외한 2의 배수를 모두 지운다.
- 남아 있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다.
- 자기 자신을 제외한 3의 배수를 모두 지운다.
- 남아 있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다.
- 자기 자신을 제외한 5의 배수를 모두 지운다.
- 위 과정을 반복한다.
=> 진짜 이런거(위에거 세개)는 처음 들어봤다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
long num1 = Long.parseLong(st.nextToken());
long num2 = Long.parseLong(st.nextToken());
// 소수인지 확인
// 1이면 넘기고, 2면 출력하고 넘긴다.
for (long i = num1; i <=num2; i++) {
if (i == 1) continue;
else if (i == 2) {
bw.write(String.valueOf(2) + "\n");
continue;
}
if (isPrime(i))
bw.write(String.valueOf(i) + "\n");
}
bw.flush();
bw.close();
br.close();
}
// 소수면 true, 아니면 false를 return 해주는 메서드
public static boolean isPrime(long num) {
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) return false;
}
return true;
}
}
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 입력할 숫자
long num1 = -1;
while(true) {
num1 = Long.parseLong(br.readLine());
// 0 입력시 break;
if (num1 == 0) break;
long count = 0;
for (long i = num1 + 1; i <= num1 * 2; i++) {
if (i == 1) continue;
else if (i == 2) {
count++;
continue;
}
else if (isPrime(i)) count++;
}
bw.write(String.valueOf(count) + "\n");
}
bw.flush();
bw.close();
br.close();
}
// 소수인지 확인해주는 메서드
public static boolean isPrime(long num) {
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) return false;
}
return true;
}
}
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int test_case = Integer.parseInt(br.readLine());
ArrayList<Boolean> savePrime = new ArrayList<Boolean>();
savePrime.add(false);
savePrime.add(false);
for (int i = 2; i < 1000001; i++) {
if (isPrime(i)) {
savePrime.add(true);
}
else savePrime.add(false);
}
for (int i = 0; i < test_case; i++) {
int temp = Integer.parseInt(br.readLine());
int count = 0;
for (int j = 2; j <= temp / 2; j++) {
if (savePrime.get(j) && savePrime.get(temp - j)) count++;
}
bw.write(String.valueOf(count) + "\n");
}
bw.flush();
bw.close();
br.close();
}
public static boolean isPrime(int num) {
for (int i = 2; i <= Math.sqrt(num) + 1; i++) {
if (num == 2) return true;
else if (num == 3) return true;
else if (num % i == 0) return false;
}
return true;
}
}
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int test_case = Integer.parseInt(br.readLine());
int cnt = 0;
for(int i = 1; i <= Math.sqrt(test_case); i++) cnt++;
bw.write(String.valueOf(cnt));
bw.flush();
bw.close();
br.close();
}
}