HDU 1397 Goldbach's Conjecture
时间:2011-05-23 来源:Lvsi
这题用素数筛选法。。。。 不过数组要开大点。。。 否则会挂掉去
#include<stdio.h> #include<string.h> #define max 1 << 15 + 1 int num[max + 5],n; void fun( ) { memset( num,0,sizeof( num ) ); num[0] = num[1] = 1; for( int i = 2; i <= max / 2; ++i ) if( !num[i] ) for( int j = i + i; j <= max; j += i ) num[j] = 1; } int cal( ) { int sum = 0; for( int i = 2; i <= n / 2; ++i ) if( !num[i] && !num[n-i] ) ++sum; return sum; } int main( ) { fun( ); while( scanf( "%d",&n ),n ) printf( "%d\n",cal( ) ); return 0; }
相关阅读 更多 +