Jump to content

Primes whose sum of digits is 25: Difference between revisions

Added Algol W
(Added phix and stretch goal)
(Added Algol W)
Line 7:
;Stretch goal
Show the total number of all such primes that do not contain any zeroes.
 
=={{header|ALGOL W}}==
<lang algolw>begin % find some primes whose digits sum to 25 %
% sets p( 1 :: n ) to a sieve of primes up to n %
procedure Eratosthenes ( logical array p( * ) ; integer value n ) ;
begin
p( 1 ) := false; p( 2 ) := true;
for i := 3 step 2 until n do p( i ) := true;
for i := 4 step 2 until n do p( i ) := false;
for i := 3 step 2 until truncate( sqrt( n ) ) do begin
integer ii; ii := i + i;
if p( i ) then for pr := i * i step ii until n do p( pr ) := false
end for_i ;
end Eratosthenes ;
integer MAX_NUMBER;
MAX_NUMBER := 4999;
begin
logical array prime( 1 :: MAX_NUMBER );
integer pCount;
% sieve the primes to MAX_NUMBER %
Eratosthenes( prime, MAX_NUMBER );
% find the primes whose digits sum to 25 %
pCount := 0;
for i := 1 until MAX_NUMBER do begin
if prime( i ) then begin
integer dSum, v;
v := i;
dSum := 0;
while v > 0 do begin
dSum := dSum + ( v rem 10 );
v := v div 10
end while_v_gt_0 ;
if dSum = 25 then begin
writeon( i_w := 4, s_w := 0, " ", i );
pCount := pCount + 1;
if pCount rem 20 = 0 then write()
end if_prime_pReversed
end if_prime_i
end for_i ;
write( i_w := 1, s_w := 0, "Found ", pCount, " sum25 primes below ", MAX_NUMBER + 1 )
end
end.</lang>
{{out}}
<pre>
997 1699 1789 1879 1987 2689 2797 2887 3499 3697 3769 3877 3967 4597 4759 4957 4993
Found 17 sum25 primes below 5000
</pre>
 
=={{header|Phix}}==
Line 49 ⟶ 96:
"1 minute and 27s"
</pre>
 
 
=={{header|Ring}}==
3,048

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.