Attractive numbers: Difference between revisions

Using Sieve of Eratosthenes module
(Added solution for Action!)
(Using Sieve of Eratosthenes module)
Line 173:
 
=={{header|Action!}}==
{{libheader|Action! Sieve of Eratosthenes}}
<lang Action!>DEFINE MAX="120"
<lang Action!>INCLUDE "H6:SIEVE.ACT"
BYTE ARRAY primes(MAX+1)
 
BYTE FUNC IsAttractive(BYTE n BYTE ARRAY primes)
PROC Sieve()
BYTE i,j
 
FOR i=0 TO MAX
DO
primes(i)=1
OD
 
primes(0)=0 primes(1)=0
i=2
WHILE i<=MAX
DO
IF primes(i)=1 THEN
FOR j=2*i TO MAX STEP i
DO
primes(j)=0
OD
FI
i==+1
OD
RETURN
 
BYTE FUNC IsAttractive(BYTE n)
BYTE count,f
 
Line 230 ⟶ 208:
 
PROC Main()
<lang Action!> DEFINE MAX="120"
BYTE ARRAY primes(MAX+1)
BYTE i
 
Put(125) PutE() ;clear the screen
Sieve(primes,MAX+1)
PrintF("Attractive numbers in range 1..%B:%E",MAX)
FOR i=1 TO MAX
DO
IF IsAttractive(i,primes) THEN
PrintF("%B ",i)
FI
Anonymous user