Proper divisors: Difference between revisions

Content added Content deleted
m (→‎{{header|Sidef}}: code simplifications)
(Added Seed7 example)
Line 4,205: Line 4,205:
(BigInt(1) :: products).filter(_ < n)
(BigInt(1) :: products).filter(_ < n)
}</lang>
}</lang>

=={{header|Seed7}}==
<lang seed7>$ include "seed7_05.s7i";
const proc: writeProperDivisors (in integer: n) is func
local
var integer: i is 0;
begin
for i range 1 to n div 2 do
if n rem i = 0 then
write(i <& " ");
end if;
end for;
writeln;
end func;

const func integer: countProperDivisors (in integer: n) is func
result
var integer: count is 0;
local
var integer: i is 0;
begin
for i range 1 to n div 2 step succ(n rem 2) do
if n rem i = 0 then
incr(count);
end if;
end for;
end func;

const proc: main is func
local
var integer: i is 0;
var integer: v is 0;
var integer: max is 0;
var integer: max_i is 1;
begin
for i range 1 to 10 do
write(i <& ": ");
writeProperDivisors(i);
end for;
for i range 1 to 20000 do
v := countProperDivisors(i);
if v > max then
max := v;
max_i := i;
end if;
end for;
writeln(max_i <& " with " <& max <& " divisors");
end func;</lang>

{{out}}
<pre>
1:
2: 1
3: 1
4: 1 2
5: 1
6: 1 2 3
7: 1
8: 1 2 4
9: 1 3
10: 1 2 5
15120 with 79 divisors
</pre>


=={{header|Sidef}}==
=={{header|Sidef}}==