Nice primes: Difference between revisions

→‎{{header|ALGOL W}}: Faster digital root algorithm
(Added Forth solution)
(→‎{{header|ALGOL W}}: Faster digital root algorithm)
Line 27:
% returns the digital root of n in base 10 %
integer procedure digitalRoot( integer value n ) ;
if n = 0 sumthen > 90
begin
integerelse digits, sum;begin
digits := abs n integer root;
while begin root := ( abs n ) rem 9;
sumif root := 0; then 9 else root
end digitalRoot while digits > 0;
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 %
procedure Eratosthenes ( logical array p( * ) ; integer value n ) ;
3,043

edits