mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Miscellaneous Math (https://www.mersenneforum.org/forumdisplay.php?f=56)
-   -   1+1 Selfridges PRP test (https://www.mersenneforum.org/showthread.php?t=26205)

paulunderwood 2020-11-17 19:07

1+1 Selfridges PRP test
 
This script outputs no counterexamples:

[CODE]
{
forstep(a=3,100,1,print(a);
D=a^2-4;E=D^2-4;
forstep(n=4*E-1,50000000*E,4*E,
if(kronecker(D,n)==-1&&!ispseudoprime(n),
r=Mod(D,n)^((n-1)/2);s=Mod(E,n)^((n-1)/2);
if(r==-1&&s==1,
print([n,r,s])))))
}
[/CODE]

Can you find one?

Dr Sardonicus 2020-11-17 20:49

[QUOTE=paulunderwood;563539][CODE]
{
forstep(a=3,100,1,print(a);
<snip>
}
[/CODE][/QUOTE]
This may be a silly question, but did you perhaps mean forstep(a=3,100,[color=red]2[/color] ?

carpetpool 2020-11-17 20:54

[QUOTE=paulunderwood;563539]This script outputs no counterexamples:

[CODE]
{
forstep(a=3,100,1,print(a);
D=a^2-4;E=D^2-4;
forstep(n=4*E-1,50000000*E,4*E,
if(kronecker(D,n)==-1&&!ispseudoprime(n),
r=Mod(D,n)^((n-1)/2);s=Mod(E,n)^((n-1)/2);
if(r==-1&&s==1,
print([n,r,s])))))
}
[/CODE]

Can you find one?[/QUOTE]

There appear to be a handful of pseudoprimes without the BPSW requirement:

[CODE]for(n=1,30000, if(n%2==1 & isprime(n)==0, for(a=1,n, if(kronecker(a^2-4,n)==(-1) & kronecker(a^4-8*a^2+12,n)==(-1) & Mod(a^2-4,n)^((n-1)/2)==(-1) & Mod(a^4-8*a^2-12,n)^((n-1)/2)==(-1), print([a,n])))))[/CODE]



[CODE]703, 1387, 1891, 2071, 2743, 4187, 6943, 8227, 11359, 11773, 12403, 13019, 13747, 14383, 14701, 15251, 16441, 16531, 16589, 17261, 17767, 18721, 19093, 19951, 20567, 21667, 22411, 24727, 24929, 25531, 27217, 29341, 29891, ...[/CODE]


EDIT:

[CODE]for(n=1,30000, if(n%2==1 & isprime(n)==0, for(a=1,n, if(kronecker(a^2-4,n)==(-1) & kronecker(a^4-8*a^2+12,n)==(-1) & Mod(a^2-4,n)^((n-1)/2)==(-1) & [B]Mod(a^4-8*a^2-12,n)^((n-1)/2)==(1)[/B], print([a,n])))))[/CODE]

New list of pseudoprimes

[CODE]259, 671, 703, 1649, 1891, 2059, 2701, 6001, 7471, 7957, 8911, 9211, 9881, 10963, 12403, 13213, 13747, 14111, 14491, 14701, 15203, 15251, 16531, 16589, 18631, 18721, 19951, 20263, 20567, 20591, 21349, 21667, 23377, 24461, 24727, 25351, 26599, 27613, 28939, 29341, 29539, 29891,...[/CODE]

paulunderwood 2020-11-17 22:16

[QUOTE=Dr Sardonicus;563549]This may be a silly question, but did you perhaps mean forstep(a=3,100,[color=red]2[/color] ?[/QUOTE]

No. "n" is the number tested, although I do not see how to make it an argument of a function.

paulunderwood 2020-11-17 22:18

[QUOTE=carpetpool;563552]There appear to be a handful of pseudoprimes without the BPSW requirement:

[CODE]for(n=1,30000, if(n%2==1 & isprime(n)==0, for(a=1,n, if(kronecker(a^2-4,n)==(-1) & kronecker(a^4-8*a^2+12,n)==(-1) & Mod(a^2-4,n)^((n-1)/2)==(-1) & Mod(a^4-8*a^2-12,n)^((n-1)/2)==(-1), print([a,n])))))[/CODE]



[CODE]703, 1387, 1891, 2071, 2743, 4187, 6943, 8227, 11359, 11773, 12403, 13019, 13747, 14383, 14701, 15251, 16441, 16531, 16589, 17261, 17767, 18721, 19093, 19951, 20567, 21667, 22411, 24727, 24929, 25531, 27217, 29341, 29891, ...[/CODE]


EDIT:

[CODE]for(n=1,30000, if(n%2==1 & isprime(n)==0, for(a=1,n, if(kronecker(a^2-4,n)==(-1) & kronecker(a^4-8*a^2+12,n)==(-1) & Mod(a^2-4,n)^((n-1)/2)==(-1) & [B]Mod(a^4-8*a^2-12,n)^((n-1)/2)==(1)[/B], print([a,n])))))[/CODE]

New list of pseudoprimes

[CODE]259, 671, 703, 1649, 1891, 2059, 2701, 6001, 7471, 7957, 8911, 9211, 9881, 10963, 12403, 13213, 13747, 14111, 14491, 14701, 15203, 15251, 16531, 16589, 18631, 18721, 19951, 20263, 20567, 20591, 21349, 21667, 23377, 24461, 24727, 25351, 26599, 27613, 28939, 29341, 29539, 29891,...[/CODE][/QUOTE]

I don't think your rearrangement of my code is the same!

paulunderwood 2020-11-17 22:43

[QUOTE=Dr Sardonicus;563549]This may be a silly question, but did you perhaps mean forstep(a=3,100,[color=red]2[/color] ?[/QUOTE]

On second thoughts, maybe I should! I found this counterexample for a=4: n=68368998319.

a even means gcd(D,E)>1.

Anyway I am re-running with some higher bounds.

Dr Sardonicus 2020-11-17 23:54

The reason I asked about the forstep() was that it [i]was[/i] a forstep() rather than a for()
;-)

LaurV 2020-11-18 04:02

[QUOTE=paulunderwood;563563]No.[/QUOTE]
Then why the "forstep"? if the step is 1, you could just use a simple "for" which is a bit faster (internally, it uses increment instead of addition).
Edit: crosspost with Dr.S., sorry, I didn't refresh my page, from morning :sad:

paulunderwood 2020-11-18 04:12

[QUOTE=LaurV;563603]Then why the "forstep"? if the step is 1, you could just use a simple "for" which is a bit faster (internally, it uses increment instead of addition).
Edit: crosspost with Dr.S., sorry, I didn't refresh my page, from morning :sad:[/QUOTE]

It was a legacy contruction from hacking together the code, To be more efficient by far I should pre-calculate 50000000*E in the second loop!

Another speed up might be had be putting !ispseudoprime() ahead of kronecker().

Anyway, I am now running with the bound 2250000000*E and have reached a=41. The only counterexample is the aforementioned one for a=4.

paulunderwood 2020-11-18 14:48

[QUOTE=paulunderwood;563606]
Anyway, I am now running with the bound 2250000000*E and have reached a=41. The only counterexample is the aforementioned one for a=4.[/QUOTE]

I ran that up tp a=100, No new pseudoprimes.

I am now looping heavily over a with a shallow inner loop.

After I will hammer a=3 to 10 to see if I can find another pseudoprime.

It is remarkable that after 14 hours of computation only one pseudoprime was found.

Dr Sardonicus 2020-11-18 15:23

[QUOTE=paulunderwood;563566]I found this counterexample for a=4: n=68368998319.[/quote]I checked this example, just to see if anything interesting was going on.
[code]? factor(68368998319)

%1 =
[106747 1]

[640477 1]

? for(i=1,#%1[,1],print(factor(%1[i,1]-1)))
[2, 1; 3, 1; 17791, 1]
[2, 2; 3, 2; 17791, 1][/code]Gee, that's funny...


[quote]a even means gcd(D,E)>1.[/QUOTE]Yes, if "a" is even, gcd(D,E) is 4.


All times are UTC. The time now is 11:38.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.