diff options
Diffstat (limited to 'euler27.c')
-rw-r--r-- | euler27.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/euler27.c b/euler27.c new file mode 100644 index 0000000..f2c2435 --- /dev/null +++ b/euler27.c @@ -0,0 +1,45 @@ +#include <stdio.h> +#include <stdlib.h> +#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; +} + |