Используем известный алгоритм, согласно которому нужно: а) перевести степень в двоичную систему счисления и отбросить самую левую единичку, получая битовую шкалу m. 45₁₀ = 101101₂, отбрасываем левую единицу, m=01101 б) положить результат R равным квадрату основания степени х: R=x² в) если значение самого левого бита равно 1, домножить R на х. У нас 0. Далее для каждого последующего бита в порядке слева направо выполнять: г) Возвести R в квадрат. Если бит единичный, домножить R на х. В нашем случае: R=R²x; R=R²x R=R² R=R²x
Окончательно для x⁴⁵: R=x²; R=R²x; R=R²x; R=R²; R=R²x
Пример полной программы, реализующей такой алгоритм
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018 // Внимание! Если программа не работает, обновите версию!
function Dec2Bin(x:integer):string; begin var t:=x; var r:string:=''; while t>=2 do (r,t):=(t mod 2+r,t shr 1); Result:=t+r end;
function Pow(x:real;n:integer):real; // Быстрое возведение в степень "слева направо" begin var m:=Dec2Bin(n); Result:=x; for var i:=2 to m.Length do begin Result:=Sqr(Result); if m[i]='1' then Result*=x end end;
begin var x:=ReadReal('Укажите основание х:'); var n:=ReadInteger('Укажите степень n:'); Writeln(x,'^',n,' = ',Pow(x,n)) end.
a, b, c = sorted(list(map(int, input().split())), reverse = True)
if a+b > c:
print('Треугольник может существовать')
else:
print('Треугольник может существовать')