思路:我们可以把1000000以内的素数都找出来,然后标记,for一遍就OK了
1 #include<bits/stdc++.h> 2 using namespace std; 3 int a[1000000]; 4 int b[1000000]; 5 6 int main(){ 7 int l=0; 8 for(int i=2;i<=1000000;i++){ 9 if(a[i]==0) 10 b[i]=1; 11 else continue; 12 for(int j=i+i;j<=1000000;j+=i) 13 a[j]=1; 14 } 15 int n; 16 scanf("%d",&n); 17 for(int i=1;i<=n;i++){ 18 if(b[i]==1&&b[n-i]==1){ 19 printf("%d %d ",i,n-i); return 0; 20 } 21 } 22 }