stratocasterr34
?>

Напишите программу, которая запрашивает у пользователя число, но не больше пятизначного, и выдаёт на экран сообщение о том, сколько цифр в данном числе. 0

Информатика

Ответы

Константин Андрей
Вообще попробуй универсальный метод (он годится для любого количества цифр. самое большое - в числе может быть 255 ! ) так вот, 1 . введенное число переводим в символьную строку 2. определяем длину этой строки. это и будет количество цифр в числе. алгоритм крайне
MAXIM76748
Заметим, что число нулей в записи числа = максимальная степень десятки, на которую делится число = минимальная из степеней двойки и пятерки, входящих в разложение на простые множители этого числа. [ первое равенство очевидно, второе можно доказать от противного] например, 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( c = 0 while n//5 > 0:     c += (n//5)     n = n//5 print(c)
levickaalubov5
Var       a, b, i, j, found: integer; begin       readln(a, b);             for i : = a to b do       begin               found : = 1;                             for j : = 2 to round(sqrt(i + 1)) do               begin                       found : = found * (i mod j);                       if found = 0 then break;               end;                             if found < > 0 then write(i, ' ');       end; end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая запрашивает у пользователя число, но не больше пятизначного, и выдаёт на экран сообщение о том, сколько цифр в данном числе. 0
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

alanatan5757
asvirskiy26
alena
zabava-83
boyarinovigor
houseoftorture138
Iprokopova81
АртакСергеевич1723
webotryvclub21
Шарабанов
AndrukhovichKonovalov
Budanov317
murin
zimbickij19
alyans29