Substring primes: Difference between revisions
Content added Content deleted
(Added solution for Action!) |
|||
Line 11: | Line 11: | ||
Solve by testing at most 15 numbers for primality. Show a list of all numbers tested that were not prime. |
Solve by testing at most 15 numbers for primality. Show a list of all numbers tested that were not prime. |
||
<br><br> |
<br><br> |
||
=={{header|Action!}}== |
|||
{{libheader|Action! Sieve of Eratosthenes}} |
|||
<lang Action!>INCLUDE "H6:SIEVE.ACT" |
|||
BYTE FUNC IsSubstringPrime(INT x BYTE ARRAY primes) |
|||
CHAR ARRAY s(4),tmp(4) |
|||
INT len,start,sub |
|||
IF primes(x)=0 THEN |
|||
RETURN (0) |
|||
FI |
|||
StrI(x,s) |
|||
FOR len=1 TO s(0)-1 |
|||
DO |
|||
FOR start=1 TO s(0)-len+1 |
|||
DO |
|||
SCopyS(tmp,s,start,start+len-1) |
|||
sub=ValI(tmp) |
|||
IF primes(sub)=0 THEN |
|||
RETURN (0) |
|||
FI |
|||
OD |
|||
OD |
|||
RETURN (1) |
|||
PROC Main() |
|||
DEFINE MAX="499" |
|||
BYTE ARRAY primes(MAX+1) |
|||
INT i |
|||
Put(125) PutE() ;clear the screen |
|||
Sieve(primes,MAX+1) |
|||
FOR i=2 TO MAX |
|||
DO |
|||
IF IsSubstringPrime(i,primes) THEN |
|||
PrintIE(i) |
|||
FI |
|||
OD |
|||
RETURN</lang> |
|||
{{out}} |
|||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Substring_primes.png Screenshot from Atari 8-bit computer] |
|||
<pre> |
|||
2 |
|||
3 |
|||
5 |
|||
7 |
|||
23 |
|||
37 |
|||
53 |
|||
73 |
|||
373 |
|||
</pre> |
|||
=={{header|ALGOL 68}}== |
=={{header|ALGOL 68}}== |