#include #include #define MAX 3000000 int notPrime[MAX]={0}; void genprimes(int n) { notPrime[0]=1; notPrime[1]=1; int i,j; for (i=2;i<=n;++i){ if (!notPrime[i]){ for (j=i*2;j<=n;j+=i){ notPrime[j]=1; } } } } int main() { int a,b,n; int product=0,longest=0; genprimes(MAX); for (a=-999;a<=999;a+=2){ for (b=-997;b<=997;b+=2){ if (notPrime[abs(b)]) continue; for (n=0;;++n){ int t=(n+a)*n+b; if (notPrime[abs(t)]){ if (n>longest){ longest = n; product = a*b; } break; } } } } printf("%d\n",product); return 0; }