Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Какой факториал начинается с Насти? (задача для настоящих программистов)⁠⁠

Ян Дененберг Ученик (9), открыт 3 дня назад
Пять одноклассниц — Аня, Даша, Алла, Лиза и Настя — решили найти факториалы, начинающиеся с их имён.

Аня свой нашла очень быстро: факториал числа 16641 начинается с цифр 11533, что соответствует замене каждой буквы имени Аня на её номер в русском алфавите.
Следующей была Даша: 46978! начинается с 51261, что соответствует имени Даша.
Затем и Алла нашла свой: 323172! начинается с 113131, что соответствует имени Алла.
И даже Лиза сумела: 266538! начинается с 131091, что соответствует имени Лиза.

И только Настюхе как-то не везёт — то ли лыжи не едут, то ли прога плохая.
Как же помочь Настеньке?
4 ответа
Даниил Лумумба Мастер (2048) 3 дня назад
Чтобы найти факториал, начинающийся с имени Настя, нужно определить соответствующее числовое значение для каждой буквы имени. В русском алфавите буквы имеют следующие номера:

• Н = 15

• А = 1

• С = 19

• Т = 20

• Я = 33

Таким образом, для имени Настя получаем последовательность: 15192033.

Теперь нужно найти такое число n , для которого n! начинается с 15192033. Это можно сделать с помощью вычислений или программного кода, который будет проверять факториалы на соответствие.

Кратко: ищите n , такое что n! начинается с 15192033.
Ян ДененбергУченик (9) 3 дня назад
Вы пропустили цифру, правильно так: 151192033.
никому я не нужен... Просветленный (22717) 3 дня назад
Прикреплю скриншот на Ваш ответ, если Вы не против конечно же...
Ян ДененбергУченик (9) 2 дня назад
Н это 15, а не 14.
Георгий Цителадзе Профи (792) 3 дня назад
74523608
Георгий ЦителадзеПрофи (792) 3 дня назад
Сделал перебором:
def main(start, end, prefix):
factorial = 1
for i in range(1, start):
factorial *= i
while factorial > 10**9:
factorial //= 10

for i in range(start, end + 1):
factorial *= i
while factorial > 10**9:
factorial //= 10

rezF = int(str(factorial)[:10])
if str(first_10_digits).startswith(prefix):
print(f"Число: {i}, Результат: {rezF}")

main(
start=33,
end=100000000,
prefix="151192033"
}
Георгий Цителадзе Профи (792) Георгий Цителадзе, на старт не обращать внимание, взял его наугад и пробовал разные варианты
Похожие вопросы