ответ: Кот Леопольд пошёл на рыбалку и наловил рыбы. Каждую рыбу он старательно взвесил. Первая рыба (самая маленькая), которую он взвешивал , весила ровно L грамм. Каждая следующая рыбина была на K грамм тяжелее предыдущей. Сколько весит вся рыба, которую наловил Леопольд, если известно что поймал он N(>0) рыб?
Технические условия. Программа считывает с клавиатуры число N-количество рыб, потом, через пробел, L-массу первой рыбы в граммах и через пробел-K-на сколько каждая следующая рыбина тяжелее предыдущей. Программа выводит на Экран одно целое число-массу всей пойманой рыбы в граммах.
Пример:
Ввод>10 250 100
Вывод>7000
Ввод>12 100 150
Вывод>11100
Пояснення:В качестве кандидатов нужно рассматривать числа, не превышающие
(
S
−
1
)
2
, так как в худшем случае составное число вида
x
2
будет иметь два наибольших делителя
x
и 1. Время работы этого алгоритма
O
(
S
4
)
. Можно существенно ускорить вычисления, если учесть, что при поиске разложения на множители числа
N
можно рассмотреть только числа не превышающие
√
N
. Наибольшим делителем числа
N
будет
N
a
, где
a
– наименьший делитель, а вторым наибольшим делителем будет либо
N
b
, где
b
– второй по величине делитель
N
(также либо число, либо
a
2
), либо
a
, если
N
является произведением двух различных чисел, либо 1, если
N
=
a
2
.
var a, b: array [1..10] of integer; i, sum: integer;
begin
sum := 0;
for i := 1 to 10 do
b[i] := 0;
for i := 1 to 10 do
begin
read(a[i]);
if a[i] < 0 then
begin
sum := sum + 1;
b[i] := i;
end;
end;
writeln('Amount of negative numbers: ', sum);
for i := 1 to 10 do
if b[i] <> 0 then write(b[i], ' ');
end.
2)
var a: array [1..10] of integer; i: integer; flag: boolean;
begin
flag := false;
randomize;
for i := 1 to 10 do
begin
a[i] := random(10);
if a[i] = 5
then
flag := true;
end;
for i := 1 to 10 do
write(a[i], ' ');
if flag
then
writeln('YES')
else
writeln('NO');
end.
3)
var a: array [1..10] of integer; i, ind, odd: integer;
begin
randomize;
ind := 0;
for i := 1 to 10 do
begin
a[i] := random(10);
if a[i] mod 2 <> 0
then
begin
ind := i;
odd := a[i];
end;
end;
for i := 1 to 10 do
write(a[i], ' ');
if ind <> 0
then
writeln(a[ind], ' ', ind)
else
writeln('Array has no odd elements');
end.
4)
var a: array [1..10] of integer; i: integer;
begin
writeln;
randomize;
for i := 1 to 10 do
begin
a[i] := random(20);
write(a[i], ' ');
end;
writeln;
for i := 1 to 10 do
if (a[i] < 15) and(a[i] > 5)
then
write(a[i], ' ');
end.