【ゴッドバッハ予想】

975 ワード

/*     
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7757    Accepted Submission(s): 3874


Problem Description
              .             ,                  ,        ,       ,         .
       ,            .
                   ,                     .

 

Input
         M(5<M<=10000).

 

Output
      ,            ,       .

 

Sample Input
20 30 40
 

Sample Output
7 13
13 17
17 23
 

Source
                   
*/
#include<stdio.h>
int f(int x)
{
	int i;
	if( x < 2) return 0;
	for( i  = 2; i < x; i++)
	if(x % i == 0) return 0;
	return 1;
}
int main()
{
	int n, i;
	while(scanf("%d", &n) != EOF)
	{
		for(i = n/2; i >= 2; i-- )
		if( f(i) && f(n-i))
		{
			printf("%d %d
", i, n-i); break; } } return 0; }

4より大きい任意の偶数を与え、隣接する最も近い2つの素数の和がその偶数に等しい奇数を求める.
考え方:この偶数の半分からこの2つの素数を探すのは、必ず大きくて小さくて、スピードが一番速いです.