题目如下:
Euler discovered the remarkable quadratic formula:
It turns out that the formula will produce 40 primes for the consecutive integer values 0≤n≤39. However, when n=40,+40+41=40(40+1)+41 is divisible by 41, and certainly when n=41,+41+41 is clearly divisible by 41.
The incredible formula −79n+1601 was discovered, which produces 80 primes for the consecutive values 0≤n≤79. The product of the coefficients, −79 and 1601, is −126479.
Considering quadratics of the form:
, where |a|<1000 and |b|≤1000
where |n| is the modulus/absolute value of n
e.g. |11|=11 and |−4|=4Find the product of the coefficients, a and b, for the quadratic expression that produces the maximum number of primes for consecutive values of n, starting with n=0.
因为n=0,为质数,所以b为质数,缩小了计算范围
代码如下:
clear;clc;close all
p = -1;
for i = -999 : 999
for j = primes(1000)
m = myfun(i,j);
if m > p
p = m;
a = i;
b = j;
end
end
end
disp(a*b)
function t = myfun(a,b)
t = 0;
while true
d = polyval([1,a,b], t);
if d<2 || ~isprime(d)
break
else
t = t + 1;
end
end
end