PYTHON СРОЧНО ДАЮ 50 БАЛЛОВМаксимум на сломанном калькуляторе

Петя Торопыжкин познакомился с гипотезой Коллатца: какое бы натуральное число a0 ни взять, последовательность (часто называемая сиракузской ), вычисляемая от выбранного числа по правилу


an+1=an/2, если an — чётное число

an+1=3an+1, если an — нечётное число

обязательно достигнет единицы. Он решил поэкспериментировать с последовательностью: задать начальную величину, вычислить сколько-то первых членов и посмотреть, какого наибольшего значения они достигнут. Только на калькуляторе, на котором он считал, сломался экран, и было видно только три последних разряда получаемых чисел. Поэтому Петя искал максимум из тех чисел, которые он видел. Напишите программу, которая выведет найденный им максимум.


Входные данные


В единственной строке через пробел заданы два целых числа: a0 — начальный член последовательности и k — количество членов, которые вычисляет Петя, то есть индекс последнего вычисленного члена (1≤a0≤107, 0≤k≤104). Гарантируется, что все получаемые члены последовательности не превосходят 109.


Выходные данные


Выведите через пробел два целых числа — член последовательности ai, 0≤i≤k, для которого три последние цифры дают максимальное число, и индекс i этого члена. Если таких членов несколько, выведите тот, который имеет больший индекс.


Примеры

Ввод

Вывод

2518 5

1889 3


babushkinandrew8: насколько я знаю, в сириусе же есть проверка на антисписвание, но как она работает?

Ответы

Ответ дал: babushkinandrew8
0

Ответ:

var a,k,steps,x,p,n,max,s,m:integer;    

begin

readln(a,p);

max:=0;k:=0;          

while (k<>p) do

begin

 if odd(a) then a:=a*3+1  else a:=a div 2;  

 k:=k+1;

 m:=a mod 1000;

 if m>max then begin  max:=m;n:=a;x:=k;end;

end;

writeln(n,' ',x);

end.

Объяснение:

на питоне не скажу, но паскаль я покажу


Shmeven: Не подскажешь как из паскаля в питон переделать?
babushkinandrew8: ну странно если начал изучать питон, а с паскалем даже поверхностно не знаком
Вас заинтересует