Truncatable primes: Difference between revisions

Content deleted Content added
m →‎{{header|REXX}}: added comments, changed fence, changed alignments, added whitespace. -- ~~~~
m →‎{{header|REXX}}: un-dented a DO loop. -- ~~~~
Line 1,387: Line 1,387:
!.2=1; !.3=1; !.4=1; !.7=1; !.11=1; !.13=1; !.17=1 /*low prime flags.*/
!.2=1; !.3=1; !.4=1; !.7=1; !.11=1; !.13=1; !.17=1 /*low prime flags.*/
n=7 /*number of primes so far. */
n=7 /*number of primes so far. */
do j=p.n+2 by 2 to 1000000 /*find all primes < 1,000,000. */

do j=p.n+2 by 2 to 1000000 /*find all primes < 1,000,000. */
if j//3 ==0 then iterate /*divisible by three? */
if j//3 ==0 then iterate /*divisible by three? */
if right(j,1)==5 then iterate /*right-most digit a five? */
if right(j,1)==5 then iterate /*right-most digit a five? */
if j//7 ==0 then iterate /*divisible by seven? */
if j//7 ==0 then iterate /*divisible by seven? */
if j//11 ==0 then iterate /*divisible by eleven? */
if j//11 ==0 then iterate /*divisible by eleven? */
/*the above 4 lines saves time. */
/*the above 4 lines saves time. */
do k=6 while p.k**2<=j /*divide by known odd primes. */
do k=6 while p.k**2<=j /*divide by known odd primes. */
if j//p.k==0 then iterate j /*divisible by X? Not prime. */
if j//p.k==0 then iterate j /*divisible by X? Not prime. */
end /*k*/
end /*k*/
n=n+1 /*bump number of primes found. */
n=n+1 /*bump number of primes found. */
p.n=j /*assign to sparse array. */
p.n=j /*assign to sparse array. */
!.j=1 /*indicate that J is a prime. */
!.j=1 /*indicate that J is a prime. */
end /*j*/
end /*j*/


say 'The last prime is' p.n " (there are "n 'primes under one million).'
say 'The last prime is' p.n " (there are "n 'primes under one million).'
Line 1,432: Line 1,431:
The largest left-truncatable prime under one million is 998443
The largest left-truncatable prime under one million is 998443
The largest right-truncatable prime under one million is 739399
The largest right-truncatable prime under one million is 739399

</pre>
</pre>