#include<iostream>
#include<cstdio>
using namespace std;
const int N=1e6+10;
void get_primes(int n);
int T;
int n;
int cnt, primes[N];
bool st[N];
//筛一遍质数,在从小到大枚举。
signed main()
{
get_primes(N);
cin>>T;
while(T--)
{
scanf("%d", &n);
for(int i=0;i<cnt;i++)
{
int x=primes[i];
if(!st[n-x])
{
printf("%d %d\n", primes[i], n-x);
break;
}
}
}
}
void get_primes(int n)
{
for(int i=2;i<=n;i++)
{
if(!st[i]) primes[cnt++]=i;
for(int j=0;primes[j]<=n/i;j++)
{
st[i*primes[j]]=true;
if(i%primes[j]==0) break;
}
程序设计:找质数
最新推荐文章于 2023-10-26 16:54:03 发布