hdu 1397

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1397

题意:给一个偶数,求可以表示为多少对素数对的和。

mark:最大范围是2^15 = 32768。打素数表,然后枚举。理论上会TLE,但是水过了。

代码:

# include <stdio.h>


int IsPrime[40010] ;


void init()
{
int i, j ;
for (i = 0 ; i <= 40000 ; i++)
IsPrime[i] = 1 ;
for (i = 2 ; i <= 200 ; i++) if (IsPrime[i])
for (j = i * i ; j <= 40000 ; j+= i) IsPrime[j] = 0 ;
}


int main ()
{
int i, ans, n ;
init() ;
while (~scanf ("%d", &n) && n)
{
ans = 0 ;
for (i = 2 ; i <= n/2 ; i++)
if (IsPrime[i] && IsPrime[n-i]) ans++ ;
printf ("%d\n", ans) ;
}
return 0 ;
}



posted @ 2012-02-14 15:46  Seraph2012  阅读(196)  评论(0编辑  收藏  举报