# Prime numbers which sum of digits is also prime

Redirect page

Redirect to:

Prime numbers n which sum of digits is also prime, where n < 500

## Ring

<lang ring> load "stdlib.ring" see "working..." + nl see "Prime numbers which sum of digits is also prime:" + nl

row = 0 limit = 500

for n = 1 to limit

```   flag = 0
sum = 0
strn = string(n)
if isprime(n)
for m = 1 to len(strn)
sum = sum + strn[m]
next
if isprime(sum)
flag = 1
ok
ok
if flag = 1
see "" + n + " "
row = row + 1
if row%5 = 0
see nl
ok
ok
```

next

see nl + "Found " + row + " numbers" + nl see "done..." + nl </lang>

Output:
```working...
Prime numbers which sum of digits is also prime:
2 3 5 7 11
23 29 41 43 47
61 67 83 89 101
113 131 137 139 151
157 173 179 191 193
197 199 223 227 229
241 263 269 281 283
311 313 317 331 337
353 359 373 379 397
401 409 421 443 449
461 463 467 487
Found 54 numbers
done...
```

## XPL0

<lang XPL0>func IsPrime(N); \Return 'true' if N is a prime number int N, I; [if N <= 1 then return false; for I:= 2 to sqrt(N) do

```   if rem(N/I) = 0 then return false;
```

return true; ];

func SumDigits(N); \Return the sum of the digits in N int N, Sum; [Sum:= 0; repeat N:= N/10;

```       Sum:= Sum + rem(0);
```

until N=0; return Sum; ];

int Count, N; [Count:= 0; for N:= 0 to 500-1 do

```   if IsPrime(N) & IsPrime(SumDigits(N)) then
[IntOut(0, N);
Count:= Count+1;
if rem(Count/10) = 0 then CrLf(0) else ChOut(0, 9\tab\);
];
```

CrLf(0); IntOut(0, Count); Text(0, " additive primes found below 500. "); ]</lang>

Output:
```2       3       5       7       11      23      29      41      43      47
61      67      83      89      101     113     131     137     139     151
157     173     179     191     193     197     199     223     227     229
241     263     269     281     283     311     313     317     331     337
353     359     373     379     397     401     409     421     443     449
461     463     467     487
54 additive primes found below 500.
```