misc.py 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861
  1. from cmath import cos
  2. from math import sin, cos
  3. '''
  4. number = int(input())
  5. d = number%10
  6. c = (number//10)%10
  7. b = (number//100)%10
  8. a = number//1000
  9. print(a, b, c, d)
  10. '''
  11. # x = int(input())
  12. # if x > 999 and x < 10000 and (x%17 == 0) and (x%7 == 0):
  13. # print("YES")
  14. # else:
  15. # print("NO")
  16. # x = int(input())
  17. # x1 = x%10
  18. # x2 = x//10%10
  19. # x3 = x//100
  20. # average = (x1 + x2 + x3) - max(x1, x2, x3) - min(x1, x2, x3)
  21. # if (average == max(x1, x2, x3) - min(x1, x2, x3)):
  22. # print('Число интересное')
  23. # else:
  24. # print('Число неинтересное')
  25. # print(math.pi())
  26. # n = int(input())
  27. # counter = 1
  28. # foo = 1
  29. # for i in range(1, n + 1):
  30. # for j in range(1, int(counter/2) + 2):
  31. # print(j, end='')
  32. # foo = j
  33. # for foo in range(foo - 1, 0, -1):
  34. # print(foo, end='')
  35. # counter += 2
  36. # print()
  37. # a = int(input())
  38. # b = int(input())
  39. # sum = 0
  40. # max_sum = 0
  41. # val = 0
  42. # for i in range(a, b + 1):
  43. # for j in range (1, i + 1):
  44. # if i%j == 0:
  45. # sum += j
  46. # if sum >= max_sum:
  47. # max_sum = sum
  48. # val = i
  49. # sum = 0
  50. # print(val, max_sum)
  51. # ----------------------------------------------------------------------
  52. # a = int(input())
  53. # b = int(input())
  54. # sum = 0
  55. # max_sum = 0
  56. # val = 0
  57. # for i in range(a, b + 1):
  58. # for j in range (1, i + 1):
  59. # if i%j == 0:
  60. # sum += j
  61. # if sum >= max_sum:
  62. # max_sum = sum
  63. # val = i
  64. # sum = 0
  65. # print(val, max_sum)
  66. # ----------------------------------------------------------------------
  67. # n = int(input())
  68. # for i in range(1, n + 1):
  69. # print(i, end='')
  70. # for j in range (1, i + 1):
  71. # if i%j == 0:
  72. # print('+', sep='', end='')
  73. # print()
  74. # ----------------------------------------------------------------------
  75. # n = int(input())
  76. # sum = 0
  77. # f = 1
  78. # for i in range(1, n + 1):
  79. # for j in range(1, i + 1):
  80. # f *= j
  81. # sum += f
  82. # f = 1
  83. # print(sum)
  84. # ----------------------------------------------------------------------
  85. # a = int(input())
  86. # b = int(input())
  87. # flag = True
  88. # if a == 1:
  89. # a += 1
  90. # for i in range(a, b + 1):
  91. # for j in range (2, i):
  92. # if i%j == 0:
  93. # flag = False
  94. # if flag == True:
  95. # print(i)
  96. # else:
  97. # flag = True
  98. # n = int(input())
  99. # s = 0
  100. # while n != 0:
  101. # if n % 2 == 0:
  102. # s += n % 10
  103. # n //= 10
  104. # print(s)
  105. # n = 8
  106. # count = 0
  107. # maximum = -10*12
  108. # for i in range(n):
  109. # x = int(input())
  110. # if x % 4 == 0 and x != 0:
  111. # count += 1
  112. # if x >= maximum:
  113. # maximum = x
  114. # if count > 0:
  115. # print(count)
  116. # print(maximum)
  117. # else:
  118. # print('NO')
  119. # n = 4
  120. # count = 0
  121. # maximum = -10**8
  122. # for i in range(n):
  123. # x = int(input())
  124. # if x % 2 != 0:
  125. # count += 1
  126. # if x > maximum:
  127. # maximum = x
  128. # if count > 0:
  129. # print(count)
  130. # print(maximum)
  131. # else:
  132. # print('NO')
  133. # n = int(input())
  134. # if 3 <= n <= 19:
  135. # print('*'*19)
  136. # for i in range(n-2):
  137. # print('* *')
  138. # print('*'*19)
  139. # ----------------------------------------------------------------------
  140. # three_counter = 0
  141. # last_digit_counter = 0
  142. # last_digit_flag = False
  143. # digit = 0
  144. # even_ounter = 0
  145. # sum = 0
  146. # mul = 1
  147. # greater_seven_counter = 0
  148. # greate_seven_digit = 0
  149. # sum_zero_five = 0
  150. # n = int(input())
  151. # last_digit = n%10
  152. # while n != 0:
  153. # digit = n%10
  154. # if digit > 7:
  155. # mul *= digit
  156. # greater_seven_counter += 1
  157. # greate_seven_digit = digit
  158. # if digit > 5:
  159. # sum += digit
  160. # if digit % 2 == 0:
  161. # even_ounter += 1
  162. # if digit == 3:
  163. # three_counter += 1
  164. # if digit == 0 or digit == 5:
  165. # sum_zero_five += 1
  166. # if last_digit == digit:
  167. # last_digit_counter += 1
  168. # n //= 10
  169. # print(three_counter)
  170. # print(last_digit_counter)
  171. # print(even_ounter)
  172. # print(sum)
  173. # if greater_seven_counter == 1:
  174. # print(greate_seven_digit)
  175. # else:
  176. # print(mul)
  177. # print(sum_zero_five)
  178. # i = 1729
  179. # first_flag = False
  180. # second_flag = False
  181. # x1, y1, x2, y2 = 0, 0, 0, 0
  182. # for i in range(1729, 2000):
  183. # for a in range(1, i):
  184. # for b in range(a, i):
  185. # if first_flag == False:
  186. # if a**3 + b**3 == i:
  187. # first_falg = True
  188. # x1 = a
  189. # y1 = b
  190. # elif first_flag == True:
  191. # if a**3 + b**3 == i:
  192. # second_falg = True
  193. # x2 = a
  194. # y2 = b
  195. # if first_flag == second_flag == True:
  196. # print(i, x1, y1, x2, y2)
  197. # first_flag = False
  198. # second_flag = False
  199. # i = 1729
  200. # first_flag = False
  201. # second_flag = False
  202. # x1, y1, x2, y2 = 0, 0, 0, 0
  203. # a, b, c, d = 1, 1, 1, 1
  204. # for i in range(1729, 33000):
  205. # for a in range(1, 33):
  206. # for b in range(a, 33):
  207. # for c in range(b, 33):
  208. # for d in range(c, 33):
  209. # if a**3 + b**3 == c**3 + d**3:
  210. # if (a**3 + b**3 == c**3 + d**3) and a != b and a != c and a != d:
  211. # print(a**3 + b**3, a, b, c, d)
  212. # iter - максимальное значение чисел, возводимых в куб. Здесь - это 33. Можно задать любое другое целое
  213. # n - кэш решений и массив для сортировки и вывода решений.
  214. # n_ijkl - словарь для проверки решений.
  215. # n_a, n_b - рабочие переменные.
  216. # ijkl - кортеж кортежей сумм пар кубов чисел в диапазоне до iter,
  217. # для сокращения вычислений за счёт исключения повторяющихся пар.
  218. # заготавливаем перед началом поика решений.
  219. # from time import * # для вычисления времени поиска решений
  220. # iter, n, n_ijkl, n_a, n_b = 33, set(), dict(), 0, 0
  221. # t = perf_counter() # сохраняем время начала вычислений
  222. # ijkl = tuple([tuple([i ** 3 + j ** 3 for j in range(iter)]) for i in range(iter)])
  223. # for i in range(1, iter):
  224. # for j in range(1, iter):
  225. # for k in range(1, iter):
  226. # for l in range(1, iter):
  227. # n_a = ijkl[i][j] # перебираем суммы кубов пар
  228. # n_b = ijkl[k][l] #
  229. # if n_a == n_b and i != k and j != l and i != l and j != k:
  230. # # проверяем суммы кубов пар на равенство, а числа на неравенство.
  231. # # если условие выполняется, производим записи в кэш решений и словарь с числами.
  232. # n.add(n_a)
  233. # n_ijkl[n_a] = (((i, j), i**3 + j**3), '=', (k**3 + l**3, (k, l)))
  234. # # на основе кэша решений формируем упорядоченный массив решений.
  235. # n = list(n)
  236. # n.sort()
  237. # # выводим время выполнения вычислений
  238. # print(perf_counter() - t)
  239. # # выводим чило полученных решений при заданном диапазоне чисел.
  240. # print('N_res = ', len(n))
  241. # # выводим в строчку:
  242. # # - решение, числа первой пары, сумму кубов чисел первой пары, =,
  243. # # сумму кубов чисел второй пары, числа второй пары
  244. # for r in n:
  245. # print(r, ' -> ', n_ijkl[r])
  246. # n = int(input())
  247. # my_list = []
  248. # for i in range(n):
  249. # foo = int(input())
  250. # my_list.append(foo**3)
  251. # print(my_list)
  252. # -----------------------------------------------------------------------
  253. # n_string = int(input())
  254. # my_list = []
  255. # for i in range(n_string):
  256. # my_list.extend(input())
  257. # print(my_list)
  258. # -----------------------------------------------------------------------
  259. # my_string = input()
  260. # my_list = my_string.split()
  261. # print(*my_list, sep='\n')
  262. # -----------------------------------------------------------------------
  263. # my_string = input()
  264. # my_list = my_string.split()
  265. # for i in my_list:
  266. # print(i[0], end='.')
  267. # -----------------------------------------------------------------------
  268. # my_string = 'C:\Windows\System32\calc.exe'
  269. # my_list = my_string.split('\\')
  270. # print(*my_list, sep='\n')
  271. # -----------------------------------------------------------------------
  272. # my_string = input()
  273. # my_list = my_string.split()
  274. # for i in my_list:
  275. # print('+'*int(i))
  276. # -----------------------------------------------------------------------
  277. # sum = 0
  278. # for i in range(50, 100 + 1):
  279. # sum += i**3
  280. # print(sum)
  281. # n = int(input())
  282. # f = 1
  283. # if n == 0:
  284. # print(1)
  285. # else:
  286. # for i in range (1, n + 1):
  287. # f *= i
  288. # print(f)
  289. # n = int(input())
  290. # mo = 0
  291. # ko = 0
  292. # for i in range(n):
  293. # m, k = map(int, input().split())
  294. # if m > k:
  295. # m += 1
  296. # elif k > m:
  297. # k += 1
  298. # if mo > ko:
  299. # print('Mishka')
  300. # elif ko > mo:
  301. # print('Chris')
  302. # else:
  303. # print('Friendship is magic!^^')
  304. # n = int(input())
  305. # s = []
  306. # for i in range(n):
  307. # s.append(input().lower())
  308. # for i in range(len(s)):
  309. # index = s[i].find('рок')
  310. # if index != -1:
  311. # print(i + 1, index + 1)
  312. # n = int(input())
  313. # s = []
  314. # for i in range(n):
  315. # s.append(input().lower())
  316. # for i in range(len(s)):
  317. # index = s[i].find('соль')
  318. # if index == -1:
  319. # if i != len(s) - 1:
  320. # print(s[i] + ', ', end='')
  321. # else:
  322. # print(s[i])
  323. # n = int(input())
  324. # s = []
  325. # for i in range(n):
  326. # s.append(input())
  327. # for i in range(len(s)):
  328. # if len(s[i]) > 10:
  329. # print(s[i][0], len(s[i]) - 2, s[i][-1], sep='')
  330. # else:
  331. # print(s[i])
  332. # n, m = map(int, input().split())
  333. # l = []
  334. # sum_row = 0
  335. # sum_col = 0
  336. # sum_row_l = []
  337. # sum_col_l = []
  338. # for i in range(n):
  339. # l.append(list(map(int, input().split())))
  340. # for i in range(n):
  341. # for j in range(m):
  342. # sum_row += l[i][j]
  343. # sum_row_l.append(sum_row)
  344. # sum_row = 0
  345. # for j in range(m):
  346. # for i in range(n):
  347. # sum_col += l[i][j]
  348. # sum_col_l.append(sum_col)
  349. # sum_col = 0
  350. # print(*sum_row_l)
  351. # print(*sum_col_l)
  352. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  353. # n = int(input())
  354. # l = []
  355. # for i in range(n):
  356. # l.append(list(map(int, input().split())))
  357. # # n = 4
  358. # #l = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
  359. # # l = [[0, 0, 1, 0], [0, 0, 1, 1], [1, 1, 0, 1], [0, 1, 1, 0]]
  360. # j = 0
  361. # index = 1
  362. # flag = True
  363. # for i in range(n):
  364. # while j < n - index:
  365. # # print(l[i][j + index])
  366. # # print(l[j + index][i])
  367. # if l[i][j + index] != l[j + index][i]:
  368. # flag = False
  369. # break
  370. # j += 1
  371. # j = 0
  372. # index += 1
  373. # if flag == True:
  374. # print("YES")
  375. # else:
  376. # print("NO")
  377. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  378. # n, m = map(int, input().split())
  379. # l = []
  380. # foo = []
  381. # sum = 0
  382. # for i in range(n):
  383. # l.append(list(map(int, input().split())))
  384. # for i in range(n):
  385. # for j in range(m):
  386. # sum += l[i][j]
  387. # foo.append(sum)
  388. # sum = 0
  389. # print(max(foo))
  390. # print(foo.index(max(foo)))
  391. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  392. # n, m = map(int, input().split())
  393. # l = []
  394. # maximum = [0]*n
  395. # col_index = [0]*n
  396. # foo = 0
  397. # for i in range(n):
  398. # l.append(list(map(int, input().split())))
  399. # # n, m = 3, 3
  400. # # l = [[3, 1, 2], [1, 3, 4], [3, 3, 3]]
  401. # for i in range(n):
  402. # for j in range(m):
  403. # if l[i][j] > foo:
  404. # foo = l[i][j]
  405. # maximum[i] = foo
  406. # # row_index[i] = i
  407. # col_index[i] = j
  408. # foo = max(maximum)
  409. # print(foo)
  410. # print(maximum.index(foo), col_index[maximum.index(foo)])
  411. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  412. # # n, m = map(int, input().split())
  413. # # l = []
  414. # n, m = 3, 3
  415. # l = [[3, 1, 2], [1, 3, 4], [3, 3, 3]]
  416. # maximum = [0]*n
  417. # # for i in range(n):
  418. # # l.append(list(map(int, input().split())))
  419. # # n, m = 3, 3
  420. # # l = [[3, 1, 2], [1, 3, 4], [3, 3, 3]]
  421. # for i in range(n):
  422. # maximum.append(sum(l[i]))
  423. # print(maximum)
  424. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  425. # n = int(input())
  426. # l = []
  427. # cnt = 0
  428. # for i in range(n):
  429. # l.append(list(map(int, input().split())))
  430. # for i in range (n):
  431. # for j in range(n):
  432. # if j == i:
  433. # continue
  434. # if l[i][0] == l[j][1]:
  435. # cnt += 1
  436. # print(cnt)
  437. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  438. # n, m = map(int, input().split())
  439. # l = []
  440. # cnt = 0
  441. # l.append('.'*(m + 2))
  442. # for i in range(n):
  443. # row = '.' + input() + '.'
  444. # l.append(row)
  445. # l.append('.'*(m + 2))
  446. # for i in range(n + 2):
  447. # print(l[i])
  448. # for i in range(1, n + 1):
  449. # for j in range(1, m + 1):
  450. # if l[i - 1][j] == '.' and l[i][j + 1] == '.' and l[i + 1][j] == '.' and l[i][j - 1] == '.' and l[i][j] == '.':
  451. # cnt += 1
  452. # print(cnt)
  453. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  454. # i_love_none = [None]*50
  455. # print(i_love_none)
  456. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  457. # t = ('asdfasd')
  458. # print(type(t))
  459. #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  460. # from pprint import pprint # для красивого вывода словаря
  461. # person = {}
  462. # s = 'IVANOV IVAN 19 Samara SGU 4 5 5 5 4 3 5 3'
  463. # s = s.split()
  464. # print(s)
  465. # print('-'*15)
  466. # person['last_name'] = s[0]
  467. # person['first_name'] = s[1]
  468. # person['age'] = int(s[2])
  469. # person['city'] = s[3]
  470. # person['university'] = s[4]
  471. # print(person)
  472. # print('-'*15)
  473. # person['marks'] = []
  474. # for i in s[5:]:
  475. # person['marks'].append(int(i))
  476. # pprint(person)
  477. def test_list(l: list, val: int) -> None:
  478. l.append(4)
  479. val = 8
  480. # a = 7
  481. # my_list = [1, 2, 3]
  482. # test_list(my_list, a)
  483. # print(my_list, a)
  484. def draw_triangle(fill, base):
  485. for i in range(1, int(base/2 + 1) + 1):
  486. print(fill*i)
  487. for i in range(int(base/2), 0, -1):
  488. print(fill*i)
  489. # draw_triangle('*', 9)
  490. def print_info(name, surname, patronymic):
  491. string = surname[0] + name[0] + patronymic[0]
  492. print(string.upper())
  493. def print_digit_sum(num):
  494. ret = 0
  495. while num:
  496. ret += num%10
  497. num = num//10
  498. print(ret)
  499. # print_digit_sum(1035)
  500. def get_factors(num):
  501. l = []
  502. for i in range(1, num + 1):
  503. if num%i == 0:
  504. l.append(i)
  505. return l
  506. # print(get_factors(10))
  507. def number_of_factors(num):
  508. return len(get_factors(num))
  509. # print(number_of_factors(10))
  510. def find_all(target, symbol):
  511. l = []
  512. s = ""
  513. for i in range(len(target)):
  514. if target[i] == symbol:
  515. l.append(i)
  516. return l
  517. # print(find_all('sdfwerasdfqfaf', 's'))
  518. def merge(list1, list2):
  519. list1.extend(list2)
  520. list1.sort()
  521. return list1
  522. # print(merge([1, 2, 3], [5, 6, 7, 8]))
  523. def is_prime(num):
  524. cnt = 0
  525. for i in range(1, num + 1):
  526. if num%i == 0:
  527. cnt += 1
  528. return cnt == 2
  529. def get_next_prime(num):
  530. index = 1
  531. while is_prime(num + index) == False:
  532. index += 1
  533. return num + index
  534. # print(get_next_prime(7))
  535. # его длина не менее 8 символов;
  536. # он содержит как минимум одну заглавную букву (верхний регистр);
  537. # он содержит как минимум одну строчную букву (нижний регистр);
  538. # он содержит хотя бы одну цифру.
  539. def is_password_good(password):
  540. up_flag = False
  541. low_flag = False
  542. dig_flag = False
  543. for i in password:
  544. if up_flag == False: up_flag = i.istitle()
  545. if low_flag == False: low_flag = i.islower()
  546. if dig_flag == False: dig_flag = i.isdigit()
  547. return len(password) >= 8 and up_flag and low_flag and dig_flag
  548. # print(is_password_good("sfasddfDeqwe"))
  549. def is_one_away(word1, word2):
  550. cnt = 0
  551. len_flag = len(word1) == len(word2)
  552. if len_flag:
  553. for i in range(len(word1)):
  554. if word1[i] != word2[i]:
  555. cnt +=1
  556. return len_flag and cnt == 1
  557. # print(is_one_away("aab", "abc"))
  558. def is_palindrome(text:str):
  559. s = ''
  560. flag = True
  561. for i in range(len(text)):
  562. if text[i].isalpha():
  563. s += text[i].lower()
  564. for i in range(len(s)//2):
  565. if s[i] != s[-1 - i]:
  566. flag = False
  567. return flag
  568. # print(is_palindrome("BEEGEEK"))
  569. # число a – должно быть палиндромом;
  570. # число b – должно быть простым;
  571. # число c – должно быть четным.
  572. def is_number_palindrome(num):
  573. orig = num
  574. new = 0
  575. while num:
  576. num, d = divmod(num, 10)
  577. new = new*10 + d
  578. return new == orig
  579. def is_simple(num: int):
  580. cnt = 0
  581. for i in range(1, num + 1):
  582. if num%i == 0:
  583. cnt += 1
  584. return cnt == 2
  585. def is_valid_password(password: str):
  586. if password.count(":") != 2:
  587. return False
  588. a, b, c = map(int, password.split(":"))
  589. return is_number_palindrome(a) and is_simple(b) and c%2 == 0
  590. # print(is_valid_password("24422442:181:890000"))
  591. # )(())()(()())((()))()(())
  592. def is_correct_bracket(text: str):
  593. index = 0
  594. for i in text:
  595. if i == '(':
  596. index += 1
  597. elif i == ')':
  598. index -= 1
  599. if index < 0: return False
  600. return index == 0
  601. # print(is_correct_bracket("()(())()((())((()))()(())"))
  602. def convert_to_python_case(text: str):
  603. s = text[0].lower()
  604. for i in text[1:]:
  605. if i.isupper():
  606. s = s + '_' + i.lower()
  607. else:
  608. s += i
  609. return s
  610. # print(convert_to_python_case('ThisIsCamelCased'))
  611. # print(convert_to_python_case('IsPrimeNumber'))
  612. def solve(a, b, c):
  613. d = b**2 - 4*a*c
  614. if d == 0:
  615. return -1*b/(2*a), -1*b/(2*a)
  616. x1 = (-1*b + d**0.5)/(2*a)
  617. x2 = (-1*b - d**0.5)/(2*a)
  618. if x1 <= x2:
  619. return x1, x2
  620. else:
  621. return x2, x1
  622. # вызываем функцию
  623. # x1, x2 = solve(1, 2, 1)
  624. # print(x1, x2)
  625. def number_to_words(num):
  626. d = {1: 'один', 2: 'два', 3: 'три', 4: 'четыре', 5: 'пять', 6: 'шесть', 7: 'семь', 8: 'восемь', 9: 'девять', 10: 'десять', 11: 'одиннадцать', 12: 'двенадцать', 13: 'тринадцать', 14: 'четырнадцать', 15: 'пятнадцать', 16: 'шестнадцать',17: 'семнадцать', 18: 'восемнадцать', 19: 'девятнадцать', 20: 'двадцать', 30: 'тридцать', 40: 'сорок', 50: 'пятьдесят', 60: 'шестьдесят', 70: 'семьдесят', 80: 'восемьдесят', 90: 'девяносто'}
  627. ans = ""
  628. f, s = num//10, num%10
  629. if num > 20:
  630. ans = d[f*10] + " "
  631. if s:
  632. ans += d[s]
  633. else:
  634. ans = d[num]
  635. return ans
  636. def get_month(language, number):
  637. lng_ru = ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь']
  638. lng_en = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']
  639. if language == 'ru':
  640. return lng_ru[number - 1]
  641. else:
  642. return lng_en[number - 1]
  643. # print(get_month('ru', 1))
  644. def is_magic(date):
  645. day, month, year = map(int, date.split('.'))
  646. year = year%100
  647. return day*month == year
  648. # print(is_magic('10.06.1960'))
  649. from string import ascii_lowercase
  650. def is_pangram(text):
  651. flag = True
  652. text = text.lower()
  653. for i in ascii_lowercase:
  654. if i not in text:
  655. flag = False
  656. return flag
  657. # print(is_pangram('Jackdaws love my big sphinx of quartz'))
  658. # print(is_pangram('The jay pig fox zebra and my wolves quack'))
  659. # print(is_pangram('Hello world'))