;;; find some additive primes - primes whose digit sum is also prime ;;; Library: Action! Sieve of Eratosthenes INCLUDE "H6:SIEVE.ACT" PROC Main() DEFINE MAX_PRIME = "500" BYTE ARRAY primes(MAX_PRIME) CARD n, digitSum, v, count Sieve(primes,MAX_PRIME) count = 0 FOR n = 1 TO MAX_PRIME - 1 DO IF primes( n ) THEN digitSum = 0 v = n WHILE v > 0 DO digitSum ==+ v MOD 10 v ==/ 10 OD IF primes( digitSum ) THEN IF n < 100 THEN Put(' ) IF n < 10 THEN Put(' ) FI FI Put(' )PrintI( n ) count ==+ 1 IF count MOD 20 = 0 THEN PutE() FI FI FI OD PutE()Print( "Found " )PrintI( count )Print( " additive primes below " )PrintI( MAX_PRIME + 1 )PutE() RETURN