Largest proper divisor of n: Difference between revisions

Add Seed7
(Add Seed7)
Line 1,230:
13 46 31 47 19 48 1 49 33 50
done...
</pre>
 
=={{header|Seed7}}==
<lang seed7>$ include "seed7_05.s7i";
 
const func integer: largestProperDivisor (in integer: number) is func
result
var integer: divisor is 0;
begin
if not odd(number) then
divisor := number >> 1;
else
divisor := number div 3 - 1;
if odd(divisor) then
divisor +:= 2;
else
incr(divisor);
end if;
while number rem divisor <> 0 do
divisor -:= 2;
end while;
end if;
end func;
 
const proc: main is func
local
var integer: n is 0;
begin
for n range 1 to 100 do
write(largestProperDivisor(n) lpad 3);
if n rem 10 = 0 then
writeln;
end if;
end for;
end func;</lang>
{{out}}
<pre>
1 1 1 2 1 3 1 4 3 5
1 6 1 7 5 8 1 9 1 10
7 11 1 12 5 13 9 14 1 15
1 16 11 17 7 18 1 19 13 20
1 21 1 22 15 23 1 24 7 25
17 26 1 27 11 28 19 29 1 30
1 31 21 32 13 33 1 34 23 35
1 36 1 37 25 38 11 39 1 40
27 41 1 42 17 43 29 44 1 45
13 46 31 47 19 48 1 49 33 50
</pre>
 
1,808

edits