RosettaCodeData/Task/Sylvesters-sequence/ALGOL-68/sylvesters-sequence.alg
2026-02-01 16:33:20 -08:00

26 lines
1.1 KiB
Text

BEGIN # calculate elements of Sylvester's Sequence #
PR precision 220 PR # set the number of digits for LONG LONG modes #
# returns an array set to the first n elements of Sylvester's Sequence #
# starting from 2, the elements are the product of the previous #
# elements plus 1 #
OP SYLVESTER = ( INT n )[]LONG LONG INT:
BEGIN
[ 1 : n ]LONG LONG INT result;
LONG LONG INT product := 2;
result[ 1 ] := 2;
FOR i FROM 2 TO n DO
result[ i ] := product + 1;
product *:= result[ i ]
OD;
result
END;
# find the first 10 elements of Sylvester's Seuence #
[]LONG LONG INT seq = SYLVESTER 10;
# show the sequence and sum the reciprocals #
LONG LONG REAL reciprocal sum := 0;
FOR i FROM LWB seq TO UPB seq DO
print( ( whole( seq[ i ], 0 ), newline ) );
reciprocal sum +:= 1 / seq[ i ]
OD;
print( ( "Sum of reciprocals: ", reciprocal sum, newline ) )
END