
์๋ ํ์ธ์! Eric ์ ๋๋ค!
์ค๋ ์ ๊ฐ ํ์ด๋ณผ ๋ฌธ์ ๋ ๊ณจ๋๋ฐํ์ ์ถ์ธก
๋ฐฑ์ค 6558๋ฒ ์ ๋๋ค.
์ด๋ฒ ๋ฌธ์ ์ญ์ '์์'๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์ด์ผํ๋๋ฐ์,
์ด๋ ์ ๋ ์์๋ฅผ ๊ตฌํ ๋,
์๋ผํ ์คํ ๋ค์ค์ ์ฒด ๋ฅผ ์ด์ฉํด์ ์์์ธ์ง ํ๋ณ์ํ๊ณ ,
ํด๋น ๋ด์ฉ์ ์ด๋ฏธ max๊ฐ์ ํฌ๊ธฐ์ isPrime[] ๋ฐฐ์ด์ ๋ฃ์๋ค์์
(๋ฏธ๋ฆฌ ๋ฐฐ์ด์ ๊ตฌํด๋๊ณ ์งํํ ์ด์ ๋, ๋ง์ฝ ๋ค๋ฅธ ์๊ฐ ๋์ฌ๋๋ง๋ค ๋ฐฐ์ด์ ๊ตฌํด์ ์์๋ฅผ ๊ตฌํ๋ฉด ์๊ฐ๋ณต์ก๋๊ฐ ๋ ๋์์ง๊ฑฐ๋ผ๊ณ ์๊ฐํด์ ์ด๋ ๊ฒ ์งํํ์์ต๋๋ค.)
isPrime[]์ด๋ผ๋ ๋ฐฐ์ด์ ์ด์ฉํด์ ์ด๋ฏธ ์์ฑ๋ ์์์ ๋ชจ์์์
๋ค์ for๋ฌธ์ ํตํด์ ๋๋ฉด์
์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ณจ๋๋ฐํ์ ์ถ์ธก ๋ด์ฉ์ด ๋์ค๋
๊ฐ์ ์ถ๋ ฅํ๋ฉด ๋์ด ๋ฉ๋๋ค!

์ฝ๋
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
public class N6588 { | |
static final int MAX = 1000000; | |
public static void main(String[] args) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
boolean isPrime[] = new boolean[MAX]; | |
//์๋ผํ ์คํ ๋ค์ค์ ์ฒด ๋ฐฉ์์ผ๋ก ๋ฏธ๋ฆฌ ์์๋ฅผ ํ๋ณํด๋๊ธฐ. | |
isPrime[0] = isPrime[1] = true; // ์์๋ false | |
for (int i = 2; i < isPrime.length; i++) { | |
if (!isPrime[i]) { | |
for (int j = i + i; j < isPrime.length; j += i) { | |
isPrime[j] = true; | |
} | |
} | |
} | |
//์ ๋ ฅ๋ ๊ฐ์ ๋ฐํ์ผ๋ก ๊ฒฐ๊ณผ ์ถ๋ ฅํ๊ธฐ | |
int n = Integer.parseInt(br.readLine()); | |
while (n != 0) { | |
boolean isGoldbach = false; | |
for (int i = 2; i <= n / 2; i++) { | |
if (!isPrime[i] && !isPrime[n - i]) { | |
System.out.println(n + " = " + i + " + " + (n - i)); | |
isProve = true; | |
break; | |
} | |
} | |
if (!isGoldbach) { | |
System.out.println("Goldbach's conjecture is wrong."); | |
} | |
n = Integer.parseInt(br.readLine()); | |
} | |
br.close(); | |
} | |
} | |

'๐ป ๊ฐ๋ฐ๊ณต๋ถ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Eric's ๋ฐฑ์ค] 7576๋ฒ - ํ ๋งํ - Java ๐ (2) | 2023.02.17 |
---|---|
[Eric's ๋ฐฑ์ค] 9020๋ฒ - ๊ณจ๋๋ฐํ์ ์ถ์ธก - Java (0) | 2023.02.16 |
[Eric's ๋ฐฑ์ค] 1747๋ฒ - ์์&ํฐ๋ฆฐ๋๋กฌ - Java (0) | 2023.02.16 |
[Eric's ๋ฐฑ์ค] 10799๋ฒ - ์ ๋ง๋๊ธฐ - Java (0) | 2023.02.15 |
[Eric's ๋ฐฑ์ค] 13900๋ฒ - ์์์์ ๊ณฑ์ํฉ - Java (0) | 2023.02.14 |