Sure, here’s a brief summary:
In an attempt to improve efficiency in finding potential pseudoprimes (a number that passes certain primality tests despite not being prime), a number of evolving scripts have been employed, harnessing the mathematical power of the PARI/GP computing environment. These scripts aimed to conduct certain pseudoprime tests on terms generated from a particular sequence.
The initial approach used a simple Fermat test, focusing on base 2 pseudoprimes (2-psp). This straightforward method, though valuable, proved computationally intensive, taking considerable time to progress through a relatively limited number of terms.
With the intent to expedite the process, an optimization was proposed: instead of executing the pseudoprime test on each term indiscriminately, a filter was introduced. This pre-test filter was designed to detect when the sequence appeared to be ‘settling’ on a particular value, specifically when the last three terms were equal and their greatest common divisor exceeded a threshold.
Later, an even more sophisticated version of the script was developed. This iteration included an additional filter criterion which relied on the observation that the bit-size to term index ratio consistently approximated the value log(1.5)/log(2). Thus, only terms complying with this ratio were subjected to the pseudoprime tests.
Finally, the Baillie-PSW primality test was incorporated, replacing the initial Fermat test. This is a more robust and complex pseudoprime test, offering greater reliability and precision.
These progressive refinements resulted in successful identification of potential pseudoprimes at specific term indices with respective bit sizes, demonstrating the value of combining mathematical insight, computational power, and optimization strategies in prime number research.
Despite this promising development, it’s important to remember that pseudoprime tests, including Baillie-PSW, are probabilistic in nature and have a small probability of error. Therefore, the results produced by these scripts should be subjected to further testing for validation.
? W=primes(100000); a=2; for(X=1,48000, a = a + (a\2) ;b=a-(a%2); for(J=1,X\64, c=W[J]; while((1>b%c),b=b/c)); if(0, print(X,” “, ispseudoprime(b),” “, floor(log(b)/log(2)) ))); start=48000; while(1, lastlastlast=1; lastlast=1; for(X=start+1,start+4000, a = a + (a\2) ; lastlastlast = lastlast; lastlast=last; last=b;b=a-(a%2); for(J=1,X\64, c=W[J]; while((1>b%c),b=b/c) ); if(( (lastlast==b) && ( lastlastlast==b ) &&(last==b) && (gcd(lastlast,b)> (2^24000) )), if(ispseudoprime(b,1), print(X,” “, ispseudoprime(b),” “, floor(log(b)/log(2))) )));start=start+4000; )
49384 1 28862
79785 1 46660
86959 1 50858
111383 1 65125
ratio >= 0.5844
((floor(log(b)/log(2))/X)>0.5844 ) for (gcd(lastlast,b)> (2^24000) )
W=primes(100000); a=2; for(X=1,48000, a = a + (a\2) ;b=a-(a%2); for(J=1,X\64, c=W[J]; while((1>b%c),b=b/c)); if(0, print(X,” “, ispseudoprime(b),” “, floor(log(b)/log(2)) ))); start=48000; while(1, lastlastlast=1; lastlast=1; for(X=start+1,start+4000, a = a + (a\2) ; lastlastlast = lastlast; lastlast=last; last=b;b=a-(a%2); for(J=1,X\64, c=W[J]; while((1>b%c),b=b/c) ); if(( (lastlast==b) && ( lastlastlast==b ) &&(last==b) && ((floor(log(b)/log(2))/X)>0.5844 ) ) , if(ispseudoprime(b,1), print(X,” “, ispseudoprime(b),” “, floor(log(b)/log(2))) )));start=start+4000; )