Extra primes: Difference between revisions

Content added Content deleted
(Added 11l)
(Added solution for Action!)
Line 51: Line 51:
2557 2753 2777 3253 3257 3323 3527 3727 5233
2557 2753 2777 3253 3257 3323 3527 3727 5233
5237 5273 5323 5527 7237 7253 7523 7723 7727
5237 5273 5323 5527 7237 7253 7523 7723 7727
</pre>

=={{header|Action!}}==
{{libheader|Action! Sieve of Eratosthenes}}
<lang Action!>INCLUDE "H6:SIEVE.ACT"

BYTE Func IsExtraPrime(INT i BYTE ARRAY primes)
BYTE sum,d

IF primes(i)=0 THEN
RETURN (0)
FI

sum=0
WHILE i#0
DO
d=i MOD 10
IF primes(d)=0 THEN
RETURN (0)
FI
sum==+d
i==/10
OD
RETURN (primes(sum))

PROC Main()
DEFINE MAX="9999"
BYTE ARRAY primes(MAX+1)
INT i,count=[0]

Put(125) PutE()
Sieve(primes,MAX+1)
FOR i=2 TO MAX
DO
IF IsExtraPrime(i,primes) THEN
PrintI(i) Put(32)
count==+1
FI
OD
PrintF("%E%EThere are %I extra primes",count)
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Extra_primes.png Screenshot from Atari 8-bit computer]
<pre>
2 3 5 7 23 223 227 337 353 373 557 577 733 757 773 2333 2357 2377 2557 2753 2777
3253 3257 3323 3527 3727 5233 523 7 5273 5323 5527 7237 7253 7523 7723 7727

There are 36 extra primes
</pre>
</pre>