Sexy primes: Difference between revisions

Content added Content deleted
(→‎{{header|Factor}}: update for new task requirements)
m (→‎{{header|zkl}}: update to new requirements, make that configurable)
Line 496: Line 496:
[[Extensible prime generator#zkl]] could be used instead.
[[Extensible prime generator#zkl]] could be used instead.
<lang zkl>var [const] BI=Import("zklBigNum"); // libGMP
<lang zkl>var [const] BI=Import("zklBigNum"); // libGMP
const N=1_000_000, M=N+25; // M allows prime group to span N, eg N=100, (97,103)
const N=1_000_035, M=N+25; // M allows prime group to span N, eg N=100, (97,103)
const OVR=6; // 6 if prime group can NOT span N, else 0
ps,p := Data(M).fill(0), BI(2);
ps,p := Data(M).fill(0), BI(2);
while(p.nextPrime()<=M){ ps[p]=1 } // bitmap of primes
while(p.nextPrime()<=M){ ps[p]=1 } // bitmap of primes


ns:=[3..N,2].filter('wrap(n){ 2==(ps[n] + ps[n+6]) });
ns:=[3..N-OVR,2].filter('wrap(n){ 2==(ps[n] + ps[n+6]) });
msg(N,"pairs",ns,5,1);
msg(N,"pairs",ns,5,1);


ns:=[3..N-6,2].filter('wrap(n){ 3==(ps[n] + ps[n+6] + ps[n+12]) });
ns:=[3..N-(6+OVR),2].filter('wrap(n){ 3==(ps[n] + ps[n+6] + ps[n+12]) });
msg(N,"triples",ns,5,2);
msg(N,"triples",ns,5,2);


ns:=[3..N-12,2].filter('wrap(n){ 4==(ps[n] + ps[n+6] + ps[n+12] + ps[n+18]) });
ns:=[3..N-(12+OVR),2].filter('wrap(n){ 4==(ps[n] + ps[n+6] + ps[n+12] + ps[n+18]) });
msg(N,"quadruplets",ns,5,3);
msg(N,"quadruplets",ns,5,3);


ns:=[3..N-18,2].filter('wrap(n){ 5==(ps[n] + ps[n+6] + ps[n+12] + ps[n+18] + ps[n+24]) });
ns:=[3..N-(18+OVR),2].filter('wrap(n){ 5==(ps[n] + ps[n+6] + ps[n+12] + ps[n+18] + ps[n+24]) });
msg(N,"quintuplets",ns,1,4);
msg(N,"quintuplets",ns,1,4);


ns:=[7..N-6,2].filter('wrap(n){ ps[n] and 0==(ps[n-6] + ps[n+6]) });
ns:=[7..N-OVR,2].filter('wrap(n){ ps[n] and 0==(ps[n-6] + ps[n+6]) });
msg(N,"(opps, I meant UNsexy primes)",ns,10,0);
msg(N,"(opps, I meant UNsexy primes)",ns,10,0);


Line 523: Line 524:
}</lang>
}</lang>
{{out}}
{{out}}
<pre style="font-size:83%">
<pre>
Number of sexy prime pairs less than 1,000,000 = 16,386
Number of sexy prime pairs less than 1,000,035 = 16,386
The last 5 are:
The last 5 are:
(999371,999377) (999431,999437) (999721,999727) (999763,999769) (999953,999959)
(999371,999377) (999431,999437) (999721,999727) (999763,999769) (999953,999959)


Number of sexy prime triples less than 1,000,000 = 2,900
Number of sexy prime triples less than 1,000,035 = 2,900
The last 5 are:
The last 5 are:
(997427,997433,997439) (997541,997547,997553) (998071,998077,998083) (998617,998623,998629) (998737,998743,998749)
(997427,997433,997439) (997541,997547,997553) (998071,998077,998083) (998617,998623,998629) (998737,998743,998749)


Number of sexy prime quadruplets less than 1,000,000 = 325
Number of sexy prime quadruplets less than 1,000,035 = 325
The last 5 are:
The last 5 are:
(977351,977357,977363,977369) (983771,983777,983783,983789) (986131,986137,986143,986149) (990371,990377,990383,990389) (997091,997097,997103,997109)
(977351,977357,977363,977369) (983771,983777,983783,983789) (986131,986137,986143,986149) (990371,990377,990383,990389) (997091,997097,997103,997109)


Number of sexy prime quintuplets less than 1,000,000 = 1
Number of sexy prime quintuplets less than 1,000,035 = 1
The last 1 is:
The last 1 is:
(5,11,17,23,29)
(5,11,17,23,29)


Number of sexy prime (opps, I meant UNsexy primes) less than 1,000,000 = 48,624
Number of sexy prime (opps, I meant UNsexy primes) less than 1,000,035 = 48,625
The last 10 are:
The last 10 are:
(999809) (999853) (999863) (999883) (999907) (999917) (999931) (999961) (999979) (999983)
(999853) (999863) (999883) (999907) (999917) (999931) (999961) (999979) (999983) (1000003)
</pre>
</pre>