# 110705 Summation of Four Primes

import java.util.*;
import static java.lang.Math.*;

public class Main {
private static Map<Integer, Boolean> s_PrimesInfo;
static
{
s_PrimesInfo = new HashMap<Integer, Boolean>();
}

private static boolean IsPrime(int x)
{
Boolean result = s_PrimesInfo.get(x);
if (result != null)
return result;

int mid = (int)sqrt(x);
result = true;
for (int i = 2; i <= mid; ++i)
if ((x % i) == 0)
result = false;

s_PrimesInfo.put(x, result);
return result;
}

private static void GetTwoPrimes(int x, List<Integer> results)
{
int mid = x/2;
for (int i = 2; i <= mid; ++i)
{
if (IsPrime(i) && IsPrime(x - i))
{
return;
}
}
}

private static List<Integer> GetFourPrimes(int x)
{
if (x <= 7)
return null;
List<Integer> results = new LinkedList<Integer>();
x -= 2;
if ((x % 2) == 0)
{
x -= 2;
}
else
{
x -= 3;
}

GetTwoPrimes(x, results);
return results;
}

private static void Handle(int x)
{
List<Integer> results = GetFourPrimes(x);
if (results == null)
System.out.println("Impossible.");
else
System.out.println(results.get(0) + " " + results.get(1) + " " + results.get(2) + " " + results.get(3));
}

public static void main(String[] args)
{
Scanner inScanner = new Scanner(System.in);
while (inScanner.hasNextInt())
{
int a = inScanner.nextInt();
Handle(a);
}
}

}


#### PC/UVa 110705/10168 Summation of Four Primes

2012-03-06 21:18:27

#### Summation of Four Primes(歌德巴赫猜想)

2014-07-18 10:48:06

#### UVA-10168 Summation of Four Primes

2013-11-19 13:44:25

#### summation of four primes

2011-03-10 18:42:00

#### 10168 Summation of Four Primes

2015-05-18 17:28:17

#### UVa 10168 Summation of Four Primes

2015-07-26 15:17:15

#### UVA10168 Summation of Four Primes【筛选法】

2018-01-09 23:16:56

#### UVa 10168 - Summation of Four Primes

2014-03-23 18:31:04

#### T-Prime（数学规律）

2016-04-16 18:50:20

#### Project Euler：Problem 60 Prime pair sets

2015-07-13 20:05:35