SLENSER

25

Feb 25th, 2022 (edited)
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.97 KB | None | 0 0
  1. from math import gcd
  2.  
  3.  
  4. def divs(n, s='find'):
  5.     d = set()
  6.     for i in range(1, int((n ** (1 / 2))) + 1):
  7.         if n % i == 0:
  8.             d.add(i)
  9.             d.add(n // i)
  10.     d = list(d)
  11.     d.sort()
  12.     l = len(d)
  13.     if s == 'count':
  14.         return l
  15.     if s == 'find':
  16.         return d
  17.     return "s может быть только 'find' или 'count'"
  18.  
  19.  
  20. def is_palindrome(n):
  21.     n = str(n)
  22.     return n == n[::-1]
  23.  
  24.  
  25. def p1():
  26.     for x in range(300000, 333001):
  27.         if divs(x, 'count') == 3:
  28.             print(x)
  29.  
  30.  
  31. def p2():
  32.     for x in range(88535, 153374):
  33.         k = divs(x)
  34.         if [y % 2 == 1 for y in k].count(1) == 5:
  35.             print(x)
  36.  
  37.  
  38. def p3():
  39.     for x in range(198374, 295382):
  40.         k = divs(x)
  41.         if [y % 2 == 1 for y in k].count(1) == 7:
  42.             k.reverse()
  43.             for y in k:
  44.                 if y % 2 == 1:
  45.                     print(y)
  46.  
  47.  
  48. def p4():
  49.     l = 0
  50.     for x in range(100100, 300301):
  51.         if divs(x, 'count') - 2 == 3:
  52.             l += 1
  53.     print(l)
  54.  
  55.  
  56. def p5():
  57.     k = 0
  58.     max = -1
  59.     for x in range(231893, 251860):
  60.         l = divs(x, 'count')
  61.         if l >= k:
  62.             max = x
  63.             k = l
  64.  
  65.     print(k, max)
  66.  
  67.  
  68. def p6():
  69.     k = 0
  70.     for x in range(55556, 55777):
  71.         if divs(x, 'count') == 2:
  72.             k += 1
  73.     print(k)
  74.  
  75.  
  76. def p7(n):
  77.     return divs(n, 'count')
  78.  
  79.  
  80. def p8():
  81.     k = 0
  82.     max = 0
  83.     for x in range(100, 100101):
  84.         if divs(x, 'count') == 2:
  85.             k += 1
  86.             max = x
  87.     print(k, max)
  88.  
  89.  
  90. def p9():
  91.     k = 0
  92.     min = -1
  93.     for x in range(591645, 592846):
  94.         l = divs(x, 'count')
  95.         if l > k:
  96.             min = x
  97.             k = l
  98.  
  99.     print(min)
  100.  
  101.  
  102. def p10():
  103.     k = 0
  104.     for x in range(12345, 12426):
  105.         l = divs(x)
  106.         if any(is_palindrome(x) for x in l if x > 9):
  107.             k += 1
  108.     print(k)
  109.  
  110.  
  111. def p11():
  112.     k = 0
  113.     for x in range(300000, 333001):
  114.         if divs(x, 'count') == 3:
  115.             k += 1
  116.     print(k)
  117.  
  118.  
  119. def p12():
  120.     k = 0
  121.     for x in range(53671, 125699):
  122.         if divs(x, 'count') == 5:
  123.             k += 1
  124.     print(k)
  125.  
  126.  
  127. def p13(n):
  128.     k = 0
  129.     for x in range(1, n):
  130.         if gcd(x, n) == 1:
  131.             k += 1
  132.     return k
  133.  
  134.  
  135. def p14():
  136.     k = 0
  137.     for x in divs(9999556):
  138.         k += p13(x)
  139.     print(k)
  140.  
  141.  
  142. def p15():
  143.     m = p13(1013)
  144.     a = [x for x in range(0, 1014) if gcd(x, 1013) == 1]
  145.     summ = 0
  146.     for x in a:
  147.         summ += (x ** (m)) % 1013
  148.     print(summ / len(a))
  149.  
  150.  
  151. def p16():
  152.     a = divs(230010)
  153.     b = divs(600270)
  154.     c = [x for x in a if x in b]
  155.     print(c)
  156.  
  157.  
  158. def p17():
  159.     k = 0
  160.     for x in range(1, 10001):
  161.         if [x % 2 == 1 for x in divs(x)].count(1) == 1:
  162.             k += 1
  163.     print(k)
  164.  
  165.  
  166. def M(n):
  167.     d = divs(n)
  168.     l = len(d)
  169.     if l < 6:
  170.         return 0
  171.     else:
  172.         return d[1] * d[2] * d[3] * d[4] * d[5]
  173.  
  174.  
  175. def p18():
  176.     k = 0
  177.     for x in range(500000000, 520000000):
  178.         if 0 < M(x) < x:
  179.             print(f'{x}. {M(x)}')
  180.             k += 1
  181.             if k == 5:
  182.                 break
  183.  
  184.  
  185. def p19():
  186.     for y in range(190201, 190281):
  187.         m = divs(y)
  188.         if [x % 2 == 0 for x in m].count(1) == 4:
  189.             for x in range(len(m) - 1, 0, -1):
  190.                 if m[x] % 2 == 0:
  191.                     print(m[x], end=' ')
  192.             print('\n')
  193.  
  194.  
  195. def M1(n):
  196.     d = divs(n)  # включая 1 и n
  197.     l = len(d)
  198.     d.pop(0)
  199.     d.pop(-1)
  200.     if l <= 3:
  201.         return 0
  202.     else:
  203.         return max(d) + min(d)
  204.  
  205.  
  206. def p20():
  207.     k = 0
  208.     for x in range(452022, 502021):
  209.         if M1(x) % 7 == 3:
  210.             print(x, M1(x))
  211.             k += 1
  212.             if k == 5:
  213.                 break
  214.  
  215.  
  216. def p21():
  217.     k = 0
  218.     for x in range(88535, 153374):
  219.         if [x % 2 == 1 for x in divs(x)].count(1) == 5:
  220.             k += 1
  221.     print(k)
  222.  
  223.  
  224. def p22():
  225.     k = 0
  226.     for x in range(88535, 153374):
  227.         if [x % 2 == 0 for x in divs(x)].count(1) == 5:
  228.             k += 1
  229.     print(k)
  230.  
  231.  
  232. def p23():
  233.     for y in range(198374, 295382):
  234.         m = divs(y)
  235.         if [x % 2 == 1 for x in m].count(1) == 7:
  236.             for x in range(len(m) - 1, -1, -1):
  237.                 if m[x] % 2 == 1:
  238.                     print(m[x], end=' ')
  239.             print('\n')
  240.  
  241.  
  242. def p24():
  243.     k = 0
  244.     for y in range(100100, 300301):
  245.         if len([x for x in divs(y)]) == 5:
  246.             k += 1
  247.     print(k)
  248.  
  249.  
  250. def p25():
  251.     k = 0
  252.     for y in range(52112, 623123):
  253.         if len([x for x in divs(y) if divs(x, 'count') == 2]) == 3:
  254.             k += 1
  255.     print(k)
  256.  
  257.  
  258. def p26():
  259.     k = 0
  260.     a = [x for x in range(1000)]
  261.     for x in range(2, len(a)):
  262.         for y in range(x ** 2, len(a), x):
  263.             a[y] = 0
  264.     a.sort()
  265.     a = set(a)
  266.     a.remove(0)
  267.     a.remove(1)
  268.     b = [x ** 2 for x in a]
  269.     for x in range(52112, 623122):
  270.         if len([y for y in divs(x) if y in b]) == 3:
  271.             k += 1
  272.     print(k)
  273.  
  274.  
  275. def p27():
  276.     k = 0
  277.     s = 0
  278.     for y in range(88535, 167043):
  279.         m = divs(y)
  280.         if [x % 2 == 0 for x in m].count(1) == 5:
  281.             k += 1
  282.             s += y
  283.     print(k, (s / k))
  284.  
  285.  
  286. def p28():
  287.     d = set()
  288.     for m in range(0, 100):
  289.         for n in range(0, 100):
  290.             if len(str(int((4 ** (m)) * (5 ** n)))) == 9:
  291.                 d.add((4 ** (m)) * (5 ** n))
  292.     d = list(d)
  293.     d.sort()
  294.     k = 0
  295.     for x in range(200000000, 600000001):
  296.         if x in d:
  297.             k += 1
  298.     print(k)
  299.  
  300.  
  301. def p29():
  302.     k = 0
  303.     d = set()
  304.     for m in range(0, 1000, 2):
  305.         for n in range(1, 1000, 2):
  306.             if 200000000 <= (2 ** m) * (3 ** n) <= 400000000:
  307.                 k += 1
  308.     print(k)
  309.  
  310.  
  311. def p30():
  312.     k = 0
  313.     for n in range(0, 1000, 2):
  314.         for m in range(1, 1000, 2):
  315.             if 100000000 <= (5 ** m) * (7 ** n) <= 600000000:
  316.                 k += 1
  317.                 print((5 ** n) * (7 ** m))
  318.  
Add Comment
Please, Sign In to add comment