<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=SummationOfFourPrimes%2F%EA%B3%BD%EC%84%B8%ED%99%98</id>
	<title>SummationOfFourPrimes/곽세환 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=SummationOfFourPrimes%2F%EA%B3%BD%EC%84%B8%ED%99%98"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SummationOfFourPrimes/%EA%B3%BD%EC%84%B8%ED%99%98&amp;action=history"/>
	<updated>2026-05-14T23:19:42Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=SummationOfFourPrimes/%EA%B3%BD%EC%84%B8%ED%99%98&amp;diff=39487&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SummationOfFourPrimes/%EA%B3%BD%EC%84%B8%ED%99%98&amp;diff=39487&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 소감2 ==&lt;br /&gt;
* 통과O&lt;br /&gt;
* 곰곰히 관찰해본 결과 소수 3개의 합으로 웬만한 수를 다 만들 수 있다는 것을 알았다.(모든 수를 만들수 있는지는 모르겠다) 그래서 일단 제일 큰 소수를 하나 구하고 나머지 값을 소수 3개의 합으로 나타내었다.&lt;br /&gt;
* impossible과 Impossible. 은 다른거다.&lt;br /&gt;
&lt;br /&gt;
== 소스2 ==&lt;br /&gt;
 //10168&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;cmath&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;ctime&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 #define PRIME_TABLE_SIZE 100&lt;br /&gt;
 &lt;br /&gt;
 int primeTable[PRIME_TABLE_SIZE];&lt;br /&gt;
 int primeCnt = 0;&lt;br /&gt;
 &lt;br /&gt;
 void makePrimeTable()&lt;br /&gt;
 {&lt;br /&gt;
 	int i, j;&lt;br /&gt;
 	primeTable[primeCnt++] = 2;&lt;br /&gt;
 	for (i = 3; primeCnt &amp;amp;lt; PRIME_TABLE_SIZE; i += 2)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (j = 0; j &amp;amp;lt; primeCnt; j++)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (i % primeTable[j] == 0)&lt;br /&gt;
 				break;&lt;br /&gt;
 			else if (i / primeTable[j] &amp;amp;lt;= primeTable[j])&lt;br /&gt;
 			{&lt;br /&gt;
 				primeTable[primeCnt++] = i;&lt;br /&gt;
 				break;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 bool isPrime(int n)&lt;br /&gt;
 {&lt;br /&gt;
 	int i;&lt;br /&gt;
 	if (n != 2 &amp;amp;amp;&amp;amp;amp; n % 2 == 0)&lt;br /&gt;
 		return false;&lt;br /&gt;
 	for (i = 3; i &amp;amp;lt;= sqrt(n); i += 2)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (n % i == 0)&lt;br /&gt;
 			return false;&lt;br /&gt;
 	}&lt;br /&gt;
 	return true;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int input;&lt;br /&gt;
 	int sumOfThreePrimes;&lt;br /&gt;
 	int primes[4] = {0};&lt;br /&gt;
 	int i, j, k;&lt;br /&gt;
 	makePrimeTable();&lt;br /&gt;
 	while (cin &amp;amp;gt;&amp;amp;gt; input)&lt;br /&gt;
 	{&lt;br /&gt;
 		primes[0] = primes[1] = primes[2] = primes[3] = 0;&lt;br /&gt;
 &lt;br /&gt;
 	for (i = input - 6; i &amp;amp;gt;= 2; i--)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (isPrime(i))&lt;br /&gt;
 		{&lt;br /&gt;
 			primes[0] = i;&lt;br /&gt;
 			sumOfThreePrimes = input - i;&lt;br /&gt;
 			break;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	if (primes[0] == 0)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Impossible.&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		continue;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	for (i = 0; i &amp;amp;lt; 100; i++)&lt;br /&gt;
 		for (j = 0; j &amp;amp;lt; 100; j++)&lt;br /&gt;
 			for (k = 0; k &amp;amp;lt; 100; k++)&lt;br /&gt;
 			{&lt;br /&gt;
 				if (sumOfThreePrimes == primeTable[i] + primeTable[j] + primeTable[k])&lt;br /&gt;
 				{&lt;br /&gt;
 					primes[1] = primeTable[i];&lt;br /&gt;
 					primes[2] = primeTable[j];&lt;br /&gt;
 					primes[3] = primeTable[k];&lt;br /&gt;
 					i = j = k = 100;&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 	&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; primes[0] &amp;amp;lt;&amp;amp;lt; &amp;quot; &amp;quot; &amp;amp;lt;&amp;amp;lt; primes[1] &amp;amp;lt;&amp;amp;lt; &amp;quot; &amp;quot; &amp;amp;lt;&amp;amp;lt; primes[2] &amp;amp;lt;&amp;amp;lt; &amp;quot; &amp;quot; &amp;amp;lt;&amp;amp;lt; primes[3] &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 소감1 ==&lt;br /&gt;
통과X&lt;br /&gt;
접근방법이 달라야한다. 내공이 아직 부족한것 같다.&lt;br /&gt;
&lt;br /&gt;
== 소스1 ==&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;cmath&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 bool is_prime(int n);&lt;br /&gt;
 void sum_4prime(int n);&lt;br /&gt;
 &lt;br /&gt;
 int prime[500000];&lt;br /&gt;
 int prime_cnt = 0;&lt;br /&gt;
 &lt;br /&gt;
 void main()&lt;br /&gt;
 {&lt;br /&gt;
 	int input;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; input;&lt;br /&gt;
 	&lt;br /&gt;
 	sum_4prime(input);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 bool is_prime(int n)&lt;br /&gt;
 {&lt;br /&gt;
 	for (int i = 2; i &amp;amp;lt;= sqrt(n); i++)&lt;br /&gt;
 		if (n % i == 0)&lt;br /&gt;
 			return false;&lt;br /&gt;
 	return true;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void sum_4prime(int n)&lt;br /&gt;
 {&lt;br /&gt;
 	int i, j, k, l;&lt;br /&gt;
 	for (i = 2; i &amp;amp;lt;= n; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (is_prime(i))&lt;br /&gt;
 		{&lt;br /&gt;
 			prime[prime_cnt++] = i;&lt;br /&gt;
 			//cout &amp;amp;lt;&amp;amp;lt; i &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	for (i = 0; i &amp;amp;lt; prime_cnt; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		//if (prime[i] + prime[prime_cnt - 1] * 3 &amp;amp;lt; n)&lt;br /&gt;
 		//	continue;&lt;br /&gt;
 		for (j = 0; j &amp;amp;lt; prime_cnt; j++)&lt;br /&gt;
 		{&lt;br /&gt;
 			//if (prime[i] + prime[j] &amp;amp;gt;= n)&lt;br /&gt;
 			//	break;&lt;br /&gt;
 			//if (prime[i] + prime[j] + prime[prime_cnt - 1] * 2 &amp;amp;lt; n)&lt;br /&gt;
 			//	continue;&lt;br /&gt;
 				&lt;br /&gt;
 			for (k = 0; k &amp;amp;lt; prime_cnt; k++)&lt;br /&gt;
 			{&lt;br /&gt;
 				//if (prime[i] + prime[j] + prime[k] &amp;amp;gt;= n)&lt;br /&gt;
 				//	break;&lt;br /&gt;
 				//if (prime[i] + prime[j] + prime[k] + prime[prime_cnt - 1] &amp;amp;lt; n)&lt;br /&gt;
 				//	continue;&lt;br /&gt;
 &lt;br /&gt;
 				for (l = 0; l &amp;amp;lt; prime_cnt; l++)&lt;br /&gt;
 				{&lt;br /&gt;
 					//if (prime[i] + prime[j] + prime[k] + prime[l] &amp;amp;gt; n)&lt;br /&gt;
 					//	break;&lt;br /&gt;
 					if (prime[i] + prime[j] + prime[k] + prime[l] == n)&lt;br /&gt;
 					{&lt;br /&gt;
 						cout &amp;amp;lt;&amp;amp;lt; prime[i] &amp;amp;lt;&amp;amp;lt; &amp;quot; &amp;quot;	&amp;amp;lt;&amp;amp;lt; prime[j] &amp;amp;lt;&amp;amp;lt; &amp;quot; &amp;quot; &amp;amp;lt;&amp;amp;lt; prime[k] &amp;amp;lt;&amp;amp;lt; &amp;quot; &amp;quot; &amp;amp;lt;&amp;amp;lt; prime[l] &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 						return;&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Impossible&amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 댓글 ==&lt;br /&gt;
----&lt;br /&gt;
[[SummationOfFourPrimes]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>