М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Tusovik
Tusovik
17.01.2021 18:56 •  Информатика

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [563213; 565340] число с максимальной суммой различных простых делителей, имеющее ровно пять простых делителей (1 не считается простым делителем). Для найденного числа выведите само число, сумму делителей и все делители в порядке неубывания, через пробел.

👇
Открыть все ответы
Ответ:
SashaPolishuk
SashaPolishuk
17.01.2021
R:=Sqr(Sqr(Sqr(Sqr(Sqr(x))*x)*x))*x; // 45
r:=Sqr(Sqr(Sqr(Sqr(x))*x))*x; // 21
r:=Sqr(Sqr(Sqr(Sqr(x*x; // 17
r:=Sqr(Sqr(Sqr(x))*x)*x; // 11

Пример полной программы, реализующей такой алгоритм

// 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.

Примеры
Укажите основание х: 0.918
Укажите степень n: 39
0.918^39 = 0.0355520433528712

Укажите основание х: -2
Укажите степень n: 15
-2^15 = -32768

Укажите основание х: 12.6
Укажите степень n: 23
12.6^23 = 2.03480378921486E+25
4,4(8 оценок)
Ответ:
prudniksveta
prudniksveta
17.01.2021
Используем известный алгоритм, согласно которому нужно:
а) перевести степень в двоичную систему счисления и отбросить самую левую единичку, получая битовую шкалу 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

x²¹) 21₁₀ = 10101₂ ⇒ 0101; R=x²; R=R²x; R=R²; R=R²x
x¹⁷) 17₁₀ = 10001₂ ⇒ 0001; R=x²; R=R²; R=R²; R=R²x
x¹¹) 11₁₀ = 1011₂ ⇒ 011; R=x²; R=R²x; R=R²x
4,5(85 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ