RosettaCodeData/Task/Successive-prime-differences/REXX/successive-prime-differences.rexx
2026-02-01 16:33:20 -08:00

52 lines
912 B
Rexx

-- 24 Aug 2025
include Setting
call Time('r')
say 'SUCCESSIVE PRIME DIFFERENCES'
say version
say
call Primes 1e6
say 'For the' prim.0 'primes up to 1 million...'
say
call Task 1
call Task 2
call Task 2,2
call Task 2,4
call Task 4,2
call Task 2,4,6
call Task 2,4,6,8
call Task 2,4,6,8,10
call Task 2,4,6,8,10,12
call Task 2,4,6,8,10,12,14
call Task 32,16,8,4,2
say Format(Time('e'),,3) 'seconds'
exit
Task:
procedure expose prim.
diffs = ''; first = ''; last = ''
do i = 1 to Arg()
diffs = diffs||Arg(i)' '
end
count = 0
do i = 1 to prim.0-Arg()
a = prim.i; work = a; k = i
do j = 1 to Arg()
k = k+1; b = prim.k
if b-a <> Arg(j) then
iterate i
work = work b; a = b
end
count = count+1
if first = '' then
first = work
last = work
end
say 'Differences ' diffs
say 'First group ' first
say 'Last group ' last
say 'Groups found' count
say
return
include Math