62 lines
989 B
Text
62 lines
989 B
Text
fastfunc isprim num .
|
|
i = 2
|
|
while i <= sqrt num
|
|
if num mod i = 0
|
|
return 0
|
|
.
|
|
i += 1
|
|
.
|
|
return 1
|
|
.
|
|
func nextprime n .
|
|
n += 1
|
|
while isprim n = 0
|
|
n += 1
|
|
.
|
|
return n
|
|
.
|
|
func spd n d[] .
|
|
if isprim n = 0
|
|
return 0
|
|
.
|
|
for i = 1 to len d[]
|
|
if nextprime n <> n + d[i]
|
|
return 0
|
|
.
|
|
n += d[i]
|
|
.
|
|
return 1
|
|
.
|
|
proc print_set n d[] . .
|
|
write "( " & n & " "
|
|
for i = 1 to len d[]
|
|
write n + d[i] & " "
|
|
n += d[i]
|
|
.
|
|
print ")"
|
|
.
|
|
proc show max d[] . .
|
|
write "Differences of "
|
|
for d in d[]
|
|
write d & " "
|
|
.
|
|
print ""
|
|
for n = 2 to max - d[len d[]]
|
|
if spd n d[] = 1
|
|
c += 1
|
|
if c = 1
|
|
print_set n d[]
|
|
.
|
|
last = n
|
|
.
|
|
.
|
|
print_set last d[]
|
|
print "Number of occurrences: " & c
|
|
print ""
|
|
.
|
|
show 1000000 [ 2 ]
|
|
show 1000000 [ 1 ]
|
|
show 1000000 [ 2 2 ]
|
|
show 1000000 [ 2 4 ]
|
|
show 1000000 [ 4 2 ]
|
|
show 1000000 [ 6 4 2 ]
|