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;

}

 

 

 

你可能感兴趣的:(HDU)