напишите программу через паскаль или еще лучше через excel, пожалуйста

Ответы
Ответ:
Если решать задачу в лоб, то можно написать программу, скажем на паскале, которая у меня выполнялась 10 минут.
##
function F(n: integer): integer;
begin
if (n = 0)
then F:= 0
else if (n mod 2 > 0)
then F:= F(n - 1) + 1
else F:= F(n div 2)
end;
var k:= 0;
var n:= 1;
loop 1000000000 do
begin
if (F(n) = 2)
then k += 1;
inc(n);
end;
print(k);
Результат ее работы: 435.
Если при решении задачи можно использовать компьютер, то тогда просто пишете этот код за 5 секунд и идете решать другие номера, для которых компьютер не требуется. Далее минут через 10-15 получаете ответ.
Но это топорный алгоритм и при решении задачи в реальной жизни такой подход применять строго противопоказано.
Более того, настоятельно рекомендовано Вам попробовать самостоятельно увидеть изюминку этого номера.
var
n, k: integer;
function F(n: integer): integer;
begin
if n = 0
then F := 8
else if (n > 0) and (n mod 3 = 0)
then F := 5 + F(n div 3)
else F := F(n div 3)
end;
begin
k := 0;
for n := 1 to 100000000 do
if F(n) = 18
then k := k + 1;
write(k)
end.
Ответ даёт такой (считает 30 с чем то секунд): 5201982