Advertisement
Pastehsjsjs

Untitled

Nov 26th, 2022
705
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.17 KB | None | 0 0
  1. from tqdm import tqdm
  2.  
  3. '''
  4. Определите сначала количество троек элементов последовательности, в которых хотя бы одно число в троичной системе счисления оканчивается 2,
  5. а затем минимальную сумму чисел из таких троек. В данной задаче элементы тройки не обязаны стоять в последовательности рядом,
  6.  порядок элементов в паре не важен.
  7. '''
  8.  
  9.  
  10. def x_to_base(x, a=3):
  11.     d = ''
  12.     ost = x
  13.     while ost != 0:
  14.         d += str(ost % a)
  15.         ost //=a
  16.     return d[::-1]
  17.  
  18.  
  19. c = 0
  20. s = 100 ** 100
  21. with open('17-13.txt', 'r') as f:
  22.     data = f.read().strip().split('\n')
  23. for x in tqdm(range(len(data))):
  24.     for y in range(x + 1, len(data)):
  25.         for z in range(y + 1, len(data)):
  26.             items = [int(data[x]), int(data[y]), int(data[z])]
  27.             if x_to_base(items[0]) == '2' or x_to_base(items[1]) == '2' or x_to_base(items[2]) == '2':
  28.                 s = min(s, sum(items))
  29.                 c += 1
  30. print(c, s)
  31.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement