with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.Numerics; use Ada.Numerics;
with Ada.Numerics.Elementary_Functions;
use Ada.Numerics.Elementary_Functions;
procedure Calculate_digits is
index, number : Integer;
factorial_digits : Float := 0.0;
begin
loop
Put("Enter an integer greater than 1: ");
Get(number);
exit when number > 1;
end loop;
for index in 2..number loop
factorial_digits := factorial_digits + Log(Float(index), 10.0);
end loop;
Put_Line("The factorial of"&Integer'Image(number)&" has"&Integer'Image(Integer(factorial_digits))&" digits.");
end Calculate_digits;
d2l0aCBBZGEuVGV4dF9JTzsgdXNlIEFkYS5UZXh0X0lPOwp3aXRoIEFkYS5JbnRlZ2VyX1RleHRfSU87IHVzZSBBZGEuSW50ZWdlcl9UZXh0X0lPOwp3aXRoIEFkYS5OdW1lcmljczsgdXNlIEFkYS5OdW1lcmljczsKd2l0aCBBZGEuTnVtZXJpY3MuRWxlbWVudGFyeV9GdW5jdGlvbnM7IAp1c2UgIEFkYS5OdW1lcmljcy5FbGVtZW50YXJ5X0Z1bmN0aW9uczsKCnByb2NlZHVyZSBDYWxjdWxhdGVfZGlnaXRzIGlzCglpbmRleCwgbnVtYmVyIDogSW50ZWdlcjsKCWZhY3RvcmlhbF9kaWdpdHMgOiBGbG9hdCA6PSAwLjA7CmJlZ2luCglsb29wCgkJUHV0KCJFbnRlciBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiAxOiAiKTsKCQlHZXQobnVtYmVyKTsKCQlleGl0IHdoZW4gbnVtYmVyID4gMTsKCWVuZCBsb29wOwoJZm9yIGluZGV4IGluIDIuLm51bWJlciBsb29wCgkJZmFjdG9yaWFsX2RpZ2l0cyA6PSBmYWN0b3JpYWxfZGlnaXRzICsgTG9nKEZsb2F0KGluZGV4KSwgMTAuMCk7CgllbmQgbG9vcDsKCVB1dF9MaW5lKCJUaGUgZmFjdG9yaWFsIG9mIiZJbnRlZ2VyJ0ltYWdlKG51bWJlcikmIiBoYXMiJkludGVnZXInSW1hZ2UoSW50ZWdlcihmYWN0b3JpYWxfZGlnaXRzKSkmIiBkaWdpdHMuIik7CmVuZCBDYWxjdWxhdGVfZGlnaXRzOw==