Задания
Версия для печати и копирования в MS Word
Тип 16 № 56516
i

Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(a, b), где a и b  — целые не­от­ри­ца­тель­ные числа, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F(a, 0)  =  a;

F(a, b)  =  F(a−1, b) + b, если a ≥ b;

F(a, b)  =  F(a, b−1) + a, если a < b и b > 0.

 

Ука­жи­те ко­ли­че­ство таких целых не­от­ри­ца­тель­ных чисел a, для ко­то­рых можно по­до­брать такое b, что F(a, b)  =  1 048 576.

Спрятать решение

Ре­ше­ние.

За­ме­тим, что дан­ная ре­кур­сив­ная функ­ция на­хо­дит про­из­ве­де­ние чисел a и b, зна­чит, нам не­об­хо­ди­мо найти все пары целых чисел, да­ю­щих про­из­ве­де­ние 1 048 576. На­пи­шем про­грам­му, ко­то­рая на­хо­дит такие пары, на языке Python.

count = 0

for x in range(1, 1048577):

if 1048576 % x == 0:

count += 1

print(count)

 

Ответ: 21

 

При­ве­дем ре­ше­ние Бо­ри­са Са­ве­лье­ва на языке Python.

k = 0

for i in range (1,int(1048576**0.5)+1):

if 1048576%i == 0:

k += 1

if i != 1048576//i:

k += 1

print(k)


Аналоги к заданию № 56516: 56544 Все