一道素数打表的问题,打完表就发现一切都变得简单了,再也不会TLE了!
#include <stdio.h>
#define MAX 1000000
int prime[MAX+1],i,j,n;
// 比较简单的素数打表
void judgePrime() {
for(i=2; i*i<=MAX; i++)
if(prime[i] == 0)
for(j=i+i;j<=MAX;j += i)
prime[j] = 1;
}
int main() {
judgePrime();
while(scanf("%d",&n),n) {
for(i=3;i<=n/2;i += 2) {
if(!prime[i] && !prime[n-i]) {
printf("%d = %d + %d\n",n,i,n-i);
break;
}
}
}
return 0;
}