Functia data se rescrie
f(x) = -x(81-x) + 41.41
si are graficul urmator:
(Simetrie. Doar 40 de valori de testat.)
Ne intereseaza aceasta functie mai ales pe [1,80] taiat cu ZZ.
Valorile ei AICI sunt intre f(40)=f(41)=41 si 1601 < 41*41,
deci daca una din valorile lui f pe [1,40], sa zicem in x din ZZ,
este numar compus,
dam de un factor prim sub 41 in f(x). Doar pe acestia trebuie sa-i discutam.
Nu avem 40 de valori de calculat si daramat, o nimica toata pentru computer,
ci putem sa ne facem viata mai grea
(dar calculele mai usoare, daca avem cunostinte mai grele),
si sa ne intrebam doar, daca avem sansa sa dam de unul dintre divizorii
dintre primele 12 numere prime
? print( primes(12) )
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]
printre aceste numere.
Fie p unul dintre aceste numere prime.
Cazul p=2 iese imediat din discutie,
numarul x(81-x) fiind par ca produs de doua numere de paritate diferita.
Adunand 1681...
Atunci modulo p ne intrebam daca f(x) poate fi congruent cu 0.
Echivalent, daca 4f(x) poate fi congruent cu 0 modulo p.
Pentru 4f(x) avem grupare mai simpla...
Innodand firul mai sus, echivalent, daca
este rest patratic modulo p.
Acest lucru se determina "usor",
daca cititorul a auzit de simboluri Legendre, sau Hilbert, sau Jacobi...
Avem (code sage, vezi sagemath pe net):
Bun, nici o sansa ca -163 sa fie patrat modulo unul dintre primele numere prime.
Mai departe e clar ca f(81)=1681=41.41 nu mai e prim.
Statistica pentru urmatoarele valori este:
sage: for x in range(81,101): print "x=%3d f(x)=%4d is_prime = %s" % ( x, f(x), Integer(f(x)).is_prime() )
....:
x= 81 f(x)=1681 is_prime = False
x= 82 f(x)=1763 is_prime = False
x= 83 f(x)=1847 is_prime = True
x= 84 f(x)=1933 is_prime = True
x= 85 f(x)=2021 is_prime = False
x= 86 f(x)=2111 is_prime = True
x= 87 f(x)=2203 is_prime = True
x= 88 f(x)=2297 is_prime = True
x= 89 f(x)=2393 is_prime = True
x= 90 f(x)=2491 is_prime = False
x= 91 f(x)=2591 is_prime = True
x= 92 f(x)=2693 is_prime = True
x= 93 f(x)=2797 is_prime = True
x= 94 f(x)=2903 is_prime = True
x= 95 f(x)=3011 is_prime = True
x= 96 f(x)=3121 is_prime = True
x= 97 f(x)=3233 is_prime = False
x= 98 f(x)=3347 is_prime = True
x= 99 f(x)=3463 is_prime = True
x=100 f(x)=3581 is_prime = True