63ₓ = 3x⁰+2x¹+a₂x²+a₃x³+...
Понятно, что х>3, поскольку в системах счисления с x≤3 невозможно записать цифру 3.
Пусть x=4. x²=16, x³=64, ...
Поскольку даже минимально возможное значение х в третьей степени превышает 63, можно утверждать, что степеней выше 3 в представлении числа 63 нет.
Следовательно, 63=ax²+2x+3, ax²+2x-60=0, x=4,5,6, ...
Если х=8, то х²=64, поэтому для x>7 получаем а=0 и уравнение приобретает вид 2х-60=0 ⇒ х=30. Первое значение х найдено.
При х=4,5,6,7 получаем a=(60-2x)/x², a>0.
x=4 ⇒ a=(60-2×4)/4² = 52/16 = 4 - целое, подходит
x=5 ⇒ a=(60-2×5)/25 = 50/25 =2 - целое, подходит
x=6 ⇒ a=(60-2×6)/36 = 48/36 - нецелое
x=7 ⇒ a=(60-2×7)/49 = 46/49 - нецелое
Получили три значения x: 4, 5, 30
Проверим их.
1)х=4
63/4 = 15, остаток 3
15/4 = 3, остаток 2
3/4 = 0, остаток 3
Выписываем остатки в обратном порядке: 63=323₄
2) х=5
63/5 = 12, остаток 3
12/5 = 2, остаток 2
2/6 = 0, остаток 2
Выписываем остатки в обратном порядке: 63=223₅
3)х=30
63/30 = 2, остаток 3
2/30 = 0, остаток 2
Выписываем остатки в обратном порядке: 63=23₃₀
Ответ: 4, 5, 30
Var
n,m,k,i,l,max,min:longint;
begin
max:=-maxlongint;
min:=maxlongint;
readln(n);
for i:=1 to n do
begin
readln(n);
if n>max then max:=n;
if n<min then min:=n;
end;
writeln('Самый высокий ',max);
writeln('Самый низкий ',min);
end.
#include <iostream>
#include <math.h>
using namespace std;
int main() {
cout.precision(100);
double a, b, c, D, x1, x2;
cin >> a >> b >> c;
D=b*b-4*a*c;
/* if (D<0) {
cout << "the equation has no solutions in real numbers" << endl;
return 0;
}
if (D==0) {
cout << "x=" << -b/(2*a) << endl;
return 0;
}
Если что, это фрагмент программы для проверки D=0 и D<0. Если не нужен - просто сотри*/
D=sqrt(D);
x1=(-b+D)/(2*a);
x2=(-b-D)/(2*a);
if (x1<x2)
cout << "x1=" << x1 << endl << "x2=" << x2 << endl;
else cout << "x1=" << x2 << endl << "x2=" << x1 << endl;
return 0;
}