В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Qwerrgggggg
Qwerrgggggg
17.02.2020 05:29 •  Информатика

Любое натуральное число можно представить в виде суммы нескольких последовательных натуральных чисел. Например, число 25 можно представить в виде суммы из одного (25), двух (12+13) или пяти (3+4+5+6+7) чисел. Требуется написать программу, которая определит максимальное количество чисел в таком разложении. Технические требования: ограничение во времени тестирования: по 1 секунде на один тест.
Формат входных данных
Входной текстовый файл содержит одно натуральное число n (1≤ n ≤ 1000000000).
Формат выходных данных
Выходной текстовый файл должен содержать одно натуральное число – максимальное количество чисел в разложении числа на сумму последовательных натуральных чисел.
Желательно С++

Показать ответ
Ответ:
Сандалёк
Сандалёк
18.12.2020 11:38

Логистинг задачи:

var i,n,max,d:LongInt;

x1,x2:Real;

begin

 max:=1;

 Read(n);

 for i:=1 to n div 2 do

  begin

   d:=sqr(2*i-1)+8*n;

   if d<0 then Continue;

   x1:=((1-2*i)-sqrt(d))/2;

   x2:=((1-2*i)+sqrt(d))/2;

   

   if (frac(x1)=0) and (x1>max) then

    begin

     max:=Round(x1);

     Break;

    end;

   if (frac(x2)=0) and (x2>max) then

    begin

     max:=Round(x2);

     Break;

    end;

  end;

 Writeln(max);

end.

Листинг программы:

var n, s: longint;

begin

 readln(s);

 s := 2 * s; {лучше s := s shl 1;}

 n := trunc(sqrt(s)); {можно, как планировалось, n := trunc(sqrt(s + 0.25) - 0.5);}

 while n > 1 do

   if (s mod n = 0) and odd(s div n - n)

     then break

     else dec(n);

 writeln(n)

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота