Perfect numbers: Difference between revisions

no edit summary
(Perfect numbers en Yabasic)
No edit summary
Line 3,498:
perfects = { n <- 1... ; n = sum(factors n) }
</lang>
 
=={{header|S-BASIC}}==
<lang basic>
$lines
 
comment
An S-BASIC program to find so-called "perfect" numbers,
i.e., numbers whose proper factors add up to the number
itself. The first 4 such numbers are 6, 28, 496, and
8128.
end
 
rem - return p mod q
function mod(p, q = integer) = integer
end = p - q * (p/q)
 
rem - return true if n is perfect, otherwise false
function isperfect(n = integer) = integer
var sum, f1, f2 = integer
sum = 1
f1 = 2
while (f1 * f1) <= n do
begin
if mod(n, f1) = 0 then
begin
sum = sum + f1
f2 = n / f1
if f2 > f1 then sum = sum + f2
end
f1 = f1 + 1
end
end = (sum = n)
 
rem - exercise the function
var k = integer
print "Searching up to 10,000 for perfect numbers ..."
for k = 2 to 10000
if isperfect(k) then print k
next k
print "That's all. Goodbye."
 
end
</lang>
{{out}}
<pre>
Searching up to 10,000 for perfect numbers ...
6
28
496
8128
That's all. Goodbye.
</pre>
 
=={{header|Scala}}==
211

edits