Дана последовательность натуральных чисел. Назовём парой любые два числа из последовательности. Необходимо определить количество пар, в которых десятичная запись произведения чисел в паре заканчивается ровно на
Входные данные.
Первая строка входного файла содержит целое
Вам даны два входных файла
Ответ:
Приведём решение пункта А на языке Python.
f = open('27-A.txt')
s = f.readlines()
count = 0
for i in range(1, len(s)):
for j in range(i, len(s)):
if (int(s[i]) * int(s[j])) % 10000000 == 0 and i != j and (int(s[i]) * int(s[j])) % 100000000 != 0:
count += 1
print(count)
Ответ: 10 4298659.
Примечание.
Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение Юрия Красильникова на языке Python.
def pwr(n,base):
return 0 if n%base else 1 + pwr(n//base,base)
f = open('27-B.txt')
f.readline()
p = [[0]*15 for _ in range(32)] # 5**14 > 10**9 и 2**31 > 10**9
k = 0
for s in f:
x = int(s)
p2 = pwr(x,2)
p5 = pwr(x,5)
b2 = 7-p2
b5 = 7-p5
if b2 >= 0 and b5 >= 0: k += p[b2][b5]
if b2 >= 0: k += sum(p[b2][max(b5+1,0):])
if b5 >= 0: k += sum(p[i][b5] for i in range(max(b2+1,0),32))
p[p2][p5] += 1
print(k)

