1.


/**
 *
 * Problem #543 - Goldbach's Conjecture
 *
 *
 * @author Mariya Vlaseva
 *
 * Status : Accepted
 * Runtime: 0.964
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    /**
     * @param args
     * @throws IOException
     */
    public static void main(String... args) throws IOException {
        // Zeilen auslesen
        BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
       
        int zahl;
       
        //solange auslesen, bis eine 0 eingegeben wird
        for (String line=console.readLine();!line.equals("0"); line=console.readLine()){
            zahl=Integer.parseInt(line);
           
            for (int count= 3; count<zahl; count++){
                if (6<=zahl && zahl<1000000){
                    if (primeZahl(count) && primeZahl(zahl-count)){
                        System.out.println(zahl + " = "+ count + " + " + (zahl-count));
                        break;
                    }
                }
            }
        }

    }

    private static boolean primeZahl(int prime) {
        if (prime < 2 || prime % 2 == 0)
                return false;
            else {
                for (int i=3; i*i<=prime; i+=2) {
                    if (prime%i==0)
                    return false;
                }
            return true;
            }
    }
}



2.


/**

* FWP, Ausgewählte Probleme aus dem ACM Programming Contest, SS10

* Problem: 543 Goldbach's Conjecture

* Link: http://uva.onlinejudge.org/external/5/543.pdf

* @author Viktoriya Ryabova

* @version 1.0, 04/29/2010

*

* Method : Ad-Hoc

* Status : accepted

* Runtime: 1.560

*/

import java.util.Scanner;

 

public class Main {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner (System.in);

while(sc.hasNext()){

//zahlen aus der Konsole einlesen

int number = Integer.parseInt(sc.nextLine());

if (number>=6 && number<=1000000 && number!=0){

//über alle ungerade zahlen überprüfen, ob sie eine primzahl sind

for (int i=3; i<= number/2; i=i+2){

//von der zahl kleinste primzahl abziehen und falls der rest auch primzahl ist

//wir es als ergebnis ausgegeben (dadurch muss man nicht übeprüfen alle paare,

//bedingung, dass a - b = max ist, wird automatisch erfüllt

if(isPrime(number-i)&&isPrime(i)){

System.out.println(number + " = "+ i + " + " + (number-i));

break;

}

}

}

}

}

//Prüfen ob die zahl eine primzagl ist

public static boolean isPrime(int n) {

if (n < 2) {

return false;

}

else if (n == 2) {

return true;

}

else if (n % 2 == 0) {

return false;

}

else {

for (int i=3; i*i<=n; i+=2) {

if (n%i==0) {

return false;

}

}

return true;

}

}

}