With Ada.Text_IO; Use Ada.Text_IO;
With Ada.Integer_Text_IO; Use Ada.Integer_Text_IO;
procedure Collatz is
number : Integer;
begin
loop
Put("Enter an integer greater than 1: ");
Get(number);
exit when number > 1;
end loop;
loop
Put(Integer'Image(number));
if number mod 2 = 0 then
number := number / 2;
else
number := 3 * number + 1;
end if;
exit when number = 1;
end loop;
Put(Integer'Image(number));
end Collatz;
V2l0aCBBZGEuVGV4dF9JTzsgVXNlIEFkYS5UZXh0X0lPOyAgCldpdGggQWRhLkludGVnZXJfVGV4dF9JTzsgVXNlIEFkYS5JbnRlZ2VyX1RleHRfSU87Cgpwcm9jZWR1cmUgQ29sbGF0eiBpcwoJbnVtYmVyIDogSW50ZWdlcjsKYmVnaW4KCWxvb3AKCQlQdXQoIkVudGVyIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIDE6ICIpOwoJCUdldChudW1iZXIpOwoJCWV4aXQgd2hlbiBudW1iZXIgPiAxOwoJZW5kIGxvb3A7Cglsb29wCgkJUHV0KEludGVnZXInSW1hZ2UobnVtYmVyKSk7CgkJaWYgbnVtYmVyIG1vZCAyID0gMCB0aGVuCgkJCW51bWJlciA6PSBudW1iZXIgLyAyOwoJCWVsc2UKCQkJbnVtYmVyIDo9IDMgKiBudW1iZXIgKyAxOwoJCWVuZCBpZjsKCQlleGl0IHdoZW4gbnVtYmVyID0gMTsKCWVuZCBsb29wOwoJUHV0KEludGVnZXInSW1hZ2UobnVtYmVyKSk7CmVuZCBDb2xsYXR6Ow==