/**
 * In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in
 * which he made the following conjecture:
 * Every number greater than 2 can be written as the sum of three prime numbers.
 * Goldbach was considering 1 as a primer number, a convention that is no longer followed. Later on,
 * Euler re-expressed the conjecture as:
 * Every even number greater than or equal to 4 can be expressed as the sum of two prime
 * numbers.
 * For example:
 * • 8 = 3 + 5. Both 3 and 5 are odd prime numbers.
 * • 20 = 3 + 17 = 7 + 13.
 * • 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23.
 * Today it is still unproven whether the conjecture is right. (Oh wait, I have the proof of course, but
 * it is too long to write it on the margin of this page.)
 * Anyway, your task is now to verify Goldbach’s conjecture as expressed by Euler for all even numbers
 * less than a million.
 * Input
 * The input file will contain one or more test cases.
 * Each test case consists of one even integer n with 6 ≤ n < 1000000.
 * Input will be terminated by a value of 0 for n.
 * Output
 * For each test case, print one line of the form n = a + b, where a and b are odd primes. Numbers and
 * operators should be separated by exactly one blank like in the sample output below. If there is more
 * than one pair of odd primes adding up to n, choose the pair where the difference b − a is maximized.
 * If there is no such pair, print a line saying ‘Goldbach's conjecture is wrong.’
 * Sample Input
 * 8
 * 20
 * 42
 * 0
 * Sample Output
 * 8 = 3 + 5
 * 20 = 3 + 17
 * 42 = 5 + 37
 */
//https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=484

import java.util.Scanner;

public class GoldbachConjecture {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		boolean[] isPrime = sieveOfEratosthenes(1000000);
		int number = input.nextInt();
		while (number != 0) {
			boolean found = false;
			for (int i = 3; i < number && !found; i++) {
				if (isPrime[i]) {
					int currentPrime = i;
					int j = number - currentPrime;
					if (isPrime[j]) {
						System.out.println(number + " = " + currentPrime
								+ " + " + j);
						found = true;
					}
				}
			}
			if (!found) {
				System.out.println("Goldbach's conjecture is wrong.");
			}
			number = input.nextInt();
		}
	}

	private static boolean[] sieveOfEratosthenes(int number) {
		boolean[] isPrime = new boolean[number + 1];
		for (int i = 2; i < number + 1; i++) {
			isPrime[i] = true;
		}

		for (int factor = 2; factor * factor <= number; factor++) {
			if (isPrime[factor]) {
				for (int j = factor; factor * j <= number; j++) {
					isPrime[factor * j] = false;
				}
			}
		}
		return isPrime;
	}
}
