Максимум на сломанном калькуляторе Петя Торопыжкин познакомился с гипотезой Коллатца: какое бы натуральное число a0 ни взять, последовательность (часто называемая сиракузской ), вычисляемая от выбранного числа по правилу
an+1=an/2, если an — чётное число
an+1=3an+1, если an — нечётное число
обязательно достигнет единицы. Он решил поэкспериментировать с последовательностью: задать начальную величину, вычислить сколько-то первых членов и посмотреть, какого наибольшего значения они достигнут. Только на калькуляторе, на котором он считал, сломался экран, и было видно только три последних разряда получаемых чисел. Поэтому Петя искал максимум из тех чисел, которые он видел. Напишите программу, которая выведет найденный им максимум.
Входные данные
В единственной строке через пробел заданы два целых числа: a0 — начальный член последовательности и k — количество членов, которые вычисляет Петя, то есть индекс последнего вычисленного члена (1≤a0≤107, 0≤k≤104). Гарантируется, что все получаемые члены последовательности не превосходят 109.
Выходные данные C++
Выведите через пробел два целых числа — член последовательности ai, 0≤i≤k, для которого три последние цифры дают максимальное число, и индекс i этого члена. Если таких членов несколько, выведите тот, который имеет больший индекс.
Примеры
Ввод
Вывод
2518 5
1889 3
var a, n, b, i, p,s,g m:integer;
c:real;
begin
n:=Random(10000);
writeln (n);
a:=n;
b:=0;
c:=0;
p:=1;
g:=1;
while a <> 0 do
begin
a:=a div 10;
b:=b+1;
end;
while b <> 0 do
begin
p:=1;
for m:=1 to b do
p:=p*10;
s:=(n mod p) div (p div 10);
c:=c+s;
g:=g*s;
b:=b-1;
end;
writeln (c);
writeln (g);
end.
program lol (input, output);
var a, b, i, z:integer;
begin
b:=0;
a:=3;
z:=0;
while a > 2 do
begin
read (a);
z:=0;
for I:=2 to a do
begin
if a mod I = 0 then
begin
z:=z+1;
if (a=I) and (z=1) then
b:=b+1;
end;
end;
end;
writeln (b);
end.