evgenijstepano
19.10.2021 07:33

Постройте электронную таблицу для решения задачи, используя логические формулы: 10 спортсменов-многоборцев принимают участие в соревно¬ваниях по 5 видам спорта. По каждому виду спорта спортсмен набирает определенное количество очков. Спортсмену присва¬ивается звание мастера, если он набрал в сумме не менее k очков. Сколько спортсменов получило звание мастера?

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Zeka211
30.05.2020 15:27
Заметим, что число нулей в записи числа = максимальная степень десятки, на которую делится число = минимальная из степеней двойки и пятерки, входящих в разложение на простые множители этого числа. [Первое равенство очевидно, второе можно доказать от противного]
Например, 7500 имеет на конце 2 нуля: 7500 = 2^2 * 3 * 5^4 - минимальная из степеней двойки и пятерки как раз 2.

В разложении числа N! на простые множители пятерок всегда не больше, чем двоек: если в выражении N!=1*2*3*.,,*N есть множитель вида m*5^k, то есть и множитель m*2^k - хотя бы потому, что второе число меньше первого, а факториал - это произведение всех чисел меньше заданного. Поэтому при разложении на простые множители степень двойки хотя бы степень двойки. Используя наблюдение из первого параграфа, получаем:
Число нулей в конце десятичной записи числа N! совпадает с числом пятерок в разложении числа N! на простые множители.

Остается найти число пятерок в разложении. Проще всего это понять на примере.
26! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * 18 * 19 * 20 * 21 * 22 * 23 * 24 * 25 * 26

Число чисел, делящихся на 5, среди первых 26 чисел равно пяти (это 5, 10, 15, 20, 25). Это число можно найти, округлив вниз результат от деления 26/5.
Если подумать, можно понять, что в разложении 26! на простые множители 5 встретится не 5 раз - мы забыли учесть число 25, которое даст не одну пятерку, а две. И вообще, в ответ сомножитель что-то*5^n будут давать n пятерок.

Итого ответ для произвольного N: [N/5] + [N/5^2] + [N/5^3] + ...

Алгоритм:
c = 0
пока [N/5] > 0:
   увеличиваем c на [N/5]
   N = [N/5]
вывод c

Питон-3:
N = int(input())
c = 0
while N//5 > 0:
   c += (N//5)
   N = N//5
print(c)
0,0(0 оценок)
Ответ:
rusleon
23.09.2020 16:26
//Вот программа, которая кодирует слова в системах счисления от 2 до 10
//Первый ввод - число, второй - система счисления
//Pascal ABC.NET v3.0

var
 a,i,b,r,n,j,bug:integer;
 s,se,slo,slof:string;

procedure preob(var a,b,n:integer; var se:string);
 begin
  repeat
   b:=a mod n;
   a:=a div n;
   str(b,se);
   s+=se;
  until (a<=n-1);
 end;

begin
readln(slo);
readln(n);
for j:=1 to length(slo) do
begin;
a:=ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i:=1 to length(s) div 2 do
begin;
se:=s[i];
s[i]:=s[length(s)-i+1];
s[length(s)-i+1]:=se[1];
end;
write(s,'-');
slof:=slof+s;
delete(s,1,length(s));
end;
end.

//Слово Программа она кодирует как 11001111-11110000-11101110-11100011-11110000-11100000-11101100-11101100-11100000-
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота