Numbers with prime digits whose sum is 13: Difference between revisions

Prolog version
(Prolog version)
Line 1,471:
 
I've archived a slightly more OTT version: [[Numbers_with_prime_digits_whose_sum_is_13/Phix]].
 
=={{header|Prolog}}==
<lang Prolog>
digit_sum(N, M) :- digit_sum(N, 0, M).
 
digit_sum(0, A, B) :- !, A = B.
digit_sum(N, A0, M) :-
divmod(N, 10, Q, R),
plus(A0, R, A1), !,
digit_sum(Q, A1, M).
 
prime_digits(0).
prime_digits(N) :-
prime_digits(M),
member(D, [2, 3, 5, 7]),
N is 10 * M + D.
 
prime13(N) :-
prime_digits(N),
(N > 777_777 -> !, false ; true),
digit_sum(N, 13).
 
main :-
findall(N, prime13(N), S),
format("Those numbers whose digits are all prime and sum to 13 are: ~n~w~n", [S]),
halt.
 
?- main.
</lang>
{{Out}}
<pre>
Those numbers whose digits are all prime and sum to 13 are:
[337,355,373,535,553,733,2227,2272,2335,2353,2533,2722,3235,3253,3325,3352,3523,3532,5233,5323,5332,7222,22225,22252,22333,22522,23233,23323,23332,25222,32233,32323,32332,33223,33232,33322,52222,222223,222232,222322,223222,232222,322222]
</pre>
 
=={{header|Raku}}==
357

edits