Largest proper divisor of n: Difference between revisions
Content added Content deleted
(R language) |
No edit summary |
||
Line 16: | Line 16: | ||
print(‘#3’.format(lpd(i)), end' I i % 10 == 0 {"\n"} E ‘’)</lang> |
print(‘#3’.format(lpd(i)), end' I i % 10 == 0 {"\n"} E ‘’)</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> |
|||
=={{header|Ada}}== |
|||
<lang Ada>with Ada.Text_IO; use Ada.Text_IO; |
|||
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; |
|||
procedure Main is |
|||
subtype param_type is Integer range 1 .. 100; |
|||
function lpd (n : in param_type) return param_type is |
|||
result : param_type := 1; |
|||
begin |
|||
for divisor in reverse 1 .. n - 1 loop |
|||
if n rem divisor = 0 then |
|||
result := divisor; |
|||
exit; |
|||
end if; |
|||
end loop; |
|||
return result; |
|||
end lpd; |
|||
begin |
|||
for I in param_type loop |
|||
Put (Item => lpd (I), Width => 3); |
|||
if I rem 10 = 0 then |
|||
New_Line; |
|||
end if; |
|||
end loop; |
|||
end Main;</lang> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |