Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Homeworks tend to lose interest after some weeks, because solutions are provided... So i was waiting some time...

Here is a piece of code, which - given a lower bound $k$, say $k=70$, - is searching for polynomials of the shape $$ f(X) =X^2 +aX+p\ ,$$ so that $f(j)$ is a prime number for all $j$ in the interval from $0$ top $k$. In particular, the numbers $f(0)=p$ and $f(1)=1+a+p=q$ are prime numbers. And these numbers are the strarting point for the search.

The tuple $(p,q)$ determines, $a$, so also the polynomial $f$, and we check in all cases if the needed values $f(0)=p$, $f(1)=q$, $f(2)$, ... , $f(k)$ are prime numbers. If yes, we record this polynominal. The search is done by searching in a fixed range PRIMES for the first two primes $p,q$.

Code:

FIRST_TWO_PRIMES_UPPER_BOUND = 10000
var('X');

k      = 70
count  = 0
pols   = []
PRIMES = list(primes(FIRST_TWO_PRIMES_UPPER_BOUND))

for p in PRIMES:
    count += 1
    if count % 100 == 0:
        print(f"count = {count} :: checking prime {p}...")
    # we are searching for a polynomial of the shape x^2 + ax + p, a>0, with prime values on [0..k]
    for q in PRIMES:
        q_works = True # so far
        a = q - p - 1
        for j in [2..k]:
            if not ZZ(j^2 + a*j + p).is_prime():
                q_works = False
                # print(p, 'FAILS FOR', q, a, j, (j^2 + a*j + p).factor())
                break
        if q_works:
            pol =  X^2 + a*X + p
            print(f"!!! Found polynomial: {pol} !!!")
            pols.append(pol)

if pols:
    print(f"SOLUTIONS FOR k = {k}:")
    for pol in pols:
        print(pol)
else:
    print(f"NO SOLUTIONS FOR k = {k}:")

And here are the found solutions for $k=70$:

SOLUTIONS FOR k = 70:
X^2 - 61*X + 971
X^2 - 63*X + 1033
X^2 - 65*X + 1097
X^2 - 67*X + 1163
X^2 - 69*X + 1231
X^2 - 71*X + 1301
X^2 - 73*X + 1373
X^2 - 75*X + 1447
X^2 - 77*X + 1523
X^2 - 79*X + 1601

The last polynomial, $X^2 -79X +1601=X(X-79)+1601$ takes the same values in the points $j$ and $79-j$, so we obtain prime values (with repetitions) even for all $j$ from $0$ to $79$.