Duffinian numbers: Difference between revisions

Added Easylang
(Add PARI/GP implementation)
(Added Easylang)
 
Line 821:
14 6399 6400 6401
15 8449 8450 8451</pre>
 
=={{header|EasyLang}}==
<syntaxhighlight>
fastfunc isprim num .
i = 2
while i <= sqrt num
if num mod i = 0
return 0
.
i += 1
.
return 1
.
func gcd a b .
while b <> 0
h = b
b = a mod b
a = h
.
return a
.
func sumdiv num .
d = 2
repeat
quot = num div d
until d > quot
if num mod d = 0
sum += d
if d <> quot
sum += quot
.
.
d += 1
.
return sum + 1
.
func isduff n .
if isprim n = 0 and gcd sumdiv n n = 1
return 1
.
return 0
.
proc duffs . .
print "First 50 Duffinian numbers:"
n = 4
repeat
if isduff n = 1
write n & " "
cnt += 1
.
until cnt = 50
n += 1
.
cnt = 0
n = 4
print "\n\nFirst 15 Duffinian triplets:"
repeat
if isduff n = 1 and isduff (n + 1) = 1 and isduff (n + 2) = 1
print n & " - " & n + 2
cnt += 1
.
until cnt = 15
n += 1
.
.
duffs
</syntaxhighlight>
 
=={{header|Factor}}==
2,056

edits