找质数
输入一个偶数,输出两个质数,并相加等于这个偶数
#include<bits/stdc++.h>
const int maxn=1e6+10;
int a[maxn];
using namespace std;
int check()
{
int i,j;
a[0]=a[1]=1;
for(i=2;i<=maxn;i++)
{
if(a[i]==0)
{
for(j=i+i;j<=maxn;j+=i)
{
a[j]=1;
}
}
}
}
int main()
{
check();
int n,i,j,t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=2;i<=n/2;i++)
{
if(a[i]==0&&a[n-i]==0)
{
printf("%d %d\n",i,n-i);
break;
}
}
}
return 0;
}
一开始想的太多。。这道题