๋ฌธ์
- ๊ณจ๋๋ฐํ์ ์ถ์ธก: 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);
}
}
์๋ ๊ฒ ์ฒ๋ฆฌํด์ ํธ๋๊น ์ ์์ ์ผ๋ก ๋์ํ์๋ค..!