**
航电oj:Goldbach’s Conjecture
**
#题目描述
#给你数 要你输出 其由另外两个相差最大的奇素数的组成方式
#知道求素数就好解决
#知识点
求素数
#代码
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int n;
int prime[1000005];
void isprime()//
{
memset(prime,-1,sizeof(prime));
prime[1] = 0;
for(int i=2; i*i<=1000000; i++)
{
if(prime[i] == -1)
{
int j = 2*i;//素数的倍数都不是素数
while(j<=1000000)
{
prime[j] = 0;
j += i;
}
}
}
}
int main()
{
isprime();//打表
while(scanf("%d",&n)!=EOF)
{
if(n==0)
return 0;
for(int i=n; i>=1; i--)
{
if(prime[i] == -1&&prime[n-i] == -1)//满足题目条件
{
printf("%d = %d + %d\n",n,n-i,i);
break;
}
}
}
return 0;
}
#总结
求素数的题打表能方便快速的解决