|
判定素数的,水题,主要是练习一下筛选法。
#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%j == 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 ;
}

|