λ¬Έμ
- 골λλ°νμ μΆμΈ‘: 2λ³΄λ€ ν° μ§μλ λ μμμ ν©μΌλ‘ λνλΌ μ μλ€.
μ§μ Nμ λ μμμ ν©μΌλ‘ λνλ΄λ ννμ 골λλ°ν νν°μ μ΄λΌκ³ νλ€. μ§μ Nμ΄ μ£Όμ΄μ‘μ λ, 골λλ°ν νν°μ μ κ°μλ₯Ό ꡬν΄λ³΄μ. λ μμμ μμλ§ λ€λ₯Έ κ²μ κ°μ νν°μ μ΄λ€.
## μ λ ₯
첫째 μ€μ ν μ€νΈ μΌμ΄μ€μ κ°μ T (1 β€ T β€ 100)κ° μ£Όμ΄μ§λ€. κ° ν μ€νΈ μΌμ΄μ€λ ν μ€λ‘ μ΄λ£¨μ΄μ Έ μκ³ , μ μ Nμ μ§μμ΄κ³ , 2 < N β€ 1,000,000μ λ§μ‘±νλ€.
## μΆλ ₯
κ°κ°μ ν μ€νΈ μΌμ΄μ€λ§λ€ 골λλ°ν νν°μ μ μλ₯Ό μΆλ ₯νλ€.
μκ° μ ν | λ©λͺ¨λ¦¬ μ ν | μ μΆ | μ λ΅ | λ§ν μ¬λ | μ λ΅ λΉμ¨ |
---|---|---|---|---|---|
0.5 μ΄ | 512 MB | 20084 | 7692 | 5885 | 36.537% |
https://www.acmicpc.net/problem/17103
νμ΄
μ½λ
첫λ²μ§Έ μλ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class 골λλ°ννν°μ
{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
boolean[] bool = new boolean[1000001];
Arrays.fill(bool, true); //boolμ κΈ°λ³Έκ°μ trueλ‘ λ³κ²½.
int t = Integer.parseInt(br.readLine());
for(int i=2; i<1000001; i++){
if(bool[i]){
for(int j=i+i; j<1000001; j=j+i){ //j=6 j=9 j=12 j=15 ... λ°λ³΅
bool[j] = false; //falseλ©΄ μμκ° μλλ€.
}
}
}
for(int i=0; i<t; i++){
int n = Integer.parseInt(br.readLine());
int count = 0;
for(int k=2; k<=n; k++){
for(int j=k; j<=n; j++){
if(j + k == n && bool[k] && bool[j]){
count++;
}
}
}
System.out.println(count);
}
}
}
κ²°κ³Όμ μΌλ‘ μ€ν¨....γ γ
3μ€ forλ¬Έμ κ±Έμ΄μ€ λΆλΆμ΄ λ¬Έμ κ° λμ μκ°μ΄κ³Όκ° λ¬λ€.
for(int i=0; i<t; i++){
int n = Integer.parseInt(br.readLine());
int count = 0;
for(int j=2; j<=n/2; j++){
if(bool[j] && bool[n-j]) count++;
}
System.out.println(count);
}
}
μλ κ² μ²λ¦¬ν΄μ νΈλκΉ μ μμ μΌλ‘ λμνμλ€..!