Nice primes: Difference between revisions

Content added Content deleted
(Added Forth solution)
(→‎{{header|ALGOL W}}: Faster digital root algorithm)
Line 27: Line 27:
% returns the digital root of n in base 10 %
% returns the digital root of n in base 10 %
integer procedure digitalRoot( integer value n ) ;
integer procedure digitalRoot( integer value n ) ;
if n = 0 then 0
begin
integer digits, sum;
else begin
digits := abs n;
integer root;
while begin
root := ( abs n ) rem 9;
sum := 0;
if root = 0 then 9 else root
while digits > 0
end digitalRoot ;
do begin
sum := sum + ( digits rem 10 );
digits := digits div 10
end % while digits > 0 % ;
sum > 9
end do digits := sum;
sum
end digitalRoot ;
% sets p( 1 :: n ) to a sieve of primes up to n %
% sets p( 1 :: n ) to a sieve of primes up to n %
procedure Eratosthenes ( logical array p( * ) ; integer value n ) ;
procedure Eratosthenes ( logical array p( * ) ; integer value n ) ;