Форум » Рекурсивные процедуры и функции » Задание 16 задача 115 » Ответить

Задание 16 задача 115

Маша-растеряша: Алгоритм вычисления функции F(n), где n – целое неотрицательное число, задан следующими соотношениями: F(n) = 1 при n ≤ 1 F(n) = 2·F(n – 1) + F(n – 2) если n > 1 и n кратно 3, F(n) = 3·F(n – 2) + F(n – 1) в остальных случаях. Сколько существует значений n на отрезке [1, 35], для которых сумма цифр значения функции F(n) является простым числом? Моё решение: var b:integer; function F(n:integer):integer; begin if n<=1 then result:=1; if (n>1) and (n mod 3 =0) then result:=2*F(n-1)+F(n-2); if (n>1) and (n mod 3 <>0) then result:=3*F(n-2)+F(n-1); end; begin var k:=0; for var n:= 1 to 35 do begin b:=F(n); var l:=0; var x:=0; while b>0 do begin x:=x+ b mod 10; b:= b div 10; end; for var a:= 1 to x do begin if x mod a =0 then l:=l+1; end; if l=2 then k:=k+1; end; write(k); end. Эта программа выдает в качестве ответа 3, но в ответах 1 Где у меня ошибка?

Ответов - 1

Поляков: Замените integer на biginteger. Там слишком большие числа получаются.



полная версия страницы