HDU1262 寻找素数对

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1262

用筛选法求稍微方便一些:

#include<iostream>
using namespace std;
#include<math.h>
#define M 10005
int a[M+1]={1,1};
void is_prime()  //预处理
{
    int m=(int)(sqrt(M*1.0));
    for(int i=2;i<=m;i++)
    if(a[i]==0)
    for(int j=i*i;j<=M;j+=i)
     a[j]=1;      
}
int main()
{
    int n;
    is_prime();
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=n/2;i>=0;i--)
         if(a[i]==0&&a[n-i]==0)
         {
         printf("%d %d\n",i,n-i);
         break;
         }
    }    
    
    return 0;
}

 

原文地址:https://www.cnblogs.com/hsqdboke/p/2479320.html