Трехразрядное число содержит вторую степень основания. Это дает возможность сделать оценку верхнего значения основания системы счисления. 9² < √(73) < 8², поэтому система счисления не может иметь основание, большее 8. Четырехразрядное число содержит третью степень основания. Это дает возможность сделать оценку нижнего значения основания системы счисления. 5³ < ∛(73) < 4³, поэтому система счисления не может иметь основание, меньшее 5. Итак, у нас четыре претендента: натуральное n∈[5;8]
Для системы счисления по основанию n получаем уравнение an²+bn+c=73
Для n=8 получим 64a+8b+c=73; a,b,c<8 Понятно, что a=1, тогда 8b+c=9. И тут понятно, что b=1 и тогда с=1. Проверим. 111₈ = 1×8²+1×8+1=64+8+1=73
Нет смысла проверять n=7 и т.д., поскольку нам нужно наибольшее возможное основание.
var A: array[1..nmax] of integer; I, m, s: integer; Am, kon: text;
begin Clrscr; Assign(Am, 'Am.txt');
{раскоментировать для записи массива в файл} {Rewrite(Am); m := Random(nmax - 5) + 5; for i := 1 to m do Writeln(Am, Random(20)); Close(Am);}
{считывание данных из файла} Reset(Am); s := 0; m := 0; while not eof(Am) do begin m := m + 1; Readln(Am, A[m]); s := s + A[m]; end; Close(Am);
Assign(kon, 'kon.txt'); Rewrite(kon);
if s > 50 then Writeln('Сумма элементов массива более 50 и равна: s=', s) Else begin Writeln('Сумма элементов менее 50, вывод исходного массива'); for i := 1 to m do begin Writeln('A[', i, ']=', A[i], ' '); Writeln(kon, 'A[', i, ']=', A[i], ' '); end; end;
Это дает возможность сделать оценку верхнего значения основания системы счисления.
9² < √(73) < 8², поэтому система счисления не может иметь основание, большее 8.
Четырехразрядное число содержит третью степень основания. Это дает возможность сделать оценку нижнего значения основания системы счисления.
5³ < ∛(73) < 4³, поэтому система счисления не может иметь основание, меньшее 5.
Итак, у нас четыре претендента: натуральное n∈[5;8]
Для системы счисления по основанию n получаем уравнение
an²+bn+c=73
Для n=8 получим 64a+8b+c=73; a,b,c<8
Понятно, что a=1, тогда 8b+c=9. И тут понятно, что b=1 и тогда с=1.
Проверим. 111₈ = 1×8²+1×8+1=64+8+1=73
Нет смысла проверять n=7 и т.д., поскольку нам нужно наибольшее возможное основание.
ответ: 8
const
nmax = 20;
var
A: array[1..nmax] of integer;
I, m, s: integer;
Am, kon: text;
begin
Clrscr;
Assign(Am, 'Am.txt');
{раскоментировать для записи массива в файл}
{Rewrite(Am);
m := Random(nmax - 5) + 5;
for i := 1 to m do
Writeln(Am, Random(20));
Close(Am);}
{считывание данных из файла}
Reset(Am);
s := 0;
m := 0;
while not eof(Am) do
begin
m := m + 1;
Readln(Am, A[m]);
s := s + A[m];
end;
Close(Am);
Assign(kon, 'kon.txt');
Rewrite(kon);
if s > 50 then
Writeln('Сумма элементов массива более 50 и равна: s=', s)
Else
begin
Writeln('Сумма элементов менее 50, вывод исходного массива');
for i := 1 to m do
begin
Writeln('A[', i, ']=', A[i], ' ');
Writeln(kon, 'A[', i, ']=', A[i], ' ');
end;
end;
Close(kon);
Readkey;
end.