?>
Максимум на сломанном калькуляторе Петя Торопыжкин познакомился с гипотезой Коллатца: какое бы натуральное число 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 51889 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.