zoj1951_Goldbach's Conjecture

zoj1951_Goldbach's Conjecture

          判定素数的,水题,主要是练习一下筛选法。
#include  < stdio.h >
#include 
< math.h >
#define  DEBUG 1
short  a[ 1000000 ] ;
int  main()
{
    
#if DEBUG
     freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\in.txt","r",stdin);
     freopen(
"C:\\Documents and Settings\\Administrator\\桌面\\out.txt","w",stdout);
     
#endif
    
int i, j, n, flag ;
    
double temp ;
    
for( i=2; i<1000000++i ){
        
if( a[i] )
            
continue ;
        
for( j=i; j<1000000; j+=i )
            a[j] 
= 1 ;
        temp 
= sqrt( i ) ;
        flag 
= 1 ;
        
for( j=2; j<=temp; ++j ){
            
if( i%== 0 ){
                flag 
= 0 ;
                
break ;
            }

        }

        
if( flag )
            a[i] 
= 0 ;
    }

    
while( scanf("%d"&n ) && n ){
        
for( i=3; i<n; i+=2 ){
            
if!a[i] && !a[n-i] ){
                printf(
"%d = %d + %d\n", n, i, n-i ) ;
                
break ;
            }

        }

    }

    
return 0 ;
}

你可能感兴趣的:(zoj1951_Goldbach's Conjecture)