как мне ускорить программу?
n, m = map(int, input().split())
sub_count = 1
count = 0
for i in range(m):
i = 10 ** len(str(n))
if sub_count % i == n:
count += 1
sub_count += 1
print(count)
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Нужно сосчитать сколько раз повторится остаток n в диапазоне чисел [1, m]. Обозначим это количество как fn,m.
Первое наблюдение: fn,m = f0...0,m-n. Вторая запись немного странная: число нулей равно числу знаков в n. Если вы сомневаетесь, подумайте как соотносятся fn,m и fn-1,m-1.
f0...0,m-n - это количество чисел кратных 10...0 плюс единица. Что даёт формулу в программе ниже:
n, m = map(int, input().split())
print(1 + (m - n) // 10 ** len(str(n)))