Stack Overflow на русском Asked by gipoteza iz gaza on January 16, 2021
Количество чисел
На вход программе подаются два целых числа a и b (a≤b). Напишите программу, которая подсчитывает количество чисел в диапазоне от a до b включительно, куб которых оканчивается на 4 или 9.
Формат входных данных
На вход программе подаются два целых числа a и b (a≤b).
Формат выходных данных
Программа должна вывести одно целое число в соответствии с условием программы.
Примечание. Куб числа aa – это его третья степень a^3a.
Sample Input 1:
1
10
counter = 0
for i in range(int(input()), int(input())):
if i % 10 == 4:
counter = counter + 1
print(counter)
else:
i % 10 == 9
counter = counter + 1
print(counter)
Если обратить внимание на кубы чисел, которые заканчиваются на 4 и 9, то можно увидеть закономерность - если число заканчивается на 4 или на 9, то и куб этого числа будет заканчиваться на ту же цифру:
In [81]: [(i, i**3) for i in range(70) if (i**3) % 10 in (4,9)]
Out[81]:
[(4, 64),
(9, 729),
(14, 2744),
(19, 6859),
(24, 13824),
(29, 24389),
(34, 39304),
(39, 59319),
(44, 85184),
(49, 117649),
(54, 157464),
(59, 205379),
(64, 262144),
(69, 328509)]
поэтому ответ можно получить аналитически:
def f(a, b, digit):
a = a // 10 * 10 + digit
b = b // 10 * 10 - (10 - digit)
return (b - a + 10) // 10
def calc(a, b):
return f(a, b, 4) + f(a, b, 9)
a, b = 123, 321
res = calc(a, b)
результат:
In [185]: res
Out[185]: 40
проверка:
In [186]: len([(i, i**3) for i in range(a, b+1) if (i**3) % 10 in (4,9)])
Out[186]: 40
Correct answer by MaxU on January 16, 2021
Пояснения насчет кубов: 3 в кубе= 27, оканчивается на семь; 4 в кубе= 64, оканчивается на 4 - подходит нам по условию задачи. Нам надо "выловить" эту конечную цифру числа, проверить (вдруг она является 4-кой или 9-кой) и подсчитать количество таких случаев в заданном диапазоне.
Вот кубы первых 9 чисел (можете сами себе такой цикл составить, чтобы на них посмотреть и лучше понять, что просят сделать):
1**3 = 1
2**3 = 8
3**3 = 27
4**3 = 64
5**3 = 125
6**3 = 216
7**3 = 343
8**3 = 512
9**3 = 729
Answered by Егор on January 16, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP