Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import gcd
- def divs(n, s='find'):
- d = set()
- for i in range(1, int((n ** (1 / 2))) + 1):
- if n % i == 0:
- d.add(i)
- d.add(n // i)
- d = list(d)
- d.sort()
- l = len(d)
- if s == 'count':
- return l
- if s == 'find':
- return d
- return "s может быть только 'find' или 'count'"
- def is_palindrome(n):
- n = str(n)
- return n == n[::-1]
- def p1():
- for x in range(300000, 333001):
- if divs(x, 'count') == 3:
- print(x)
- def p2():
- for x in range(88535, 153374):
- k = divs(x)
- if [y % 2 == 1 for y in k].count(1) == 5:
- print(x)
- def p3():
- for x in range(198374, 295382):
- k = divs(x)
- if [y % 2 == 1 for y in k].count(1) == 7:
- k.reverse()
- for y in k:
- if y % 2 == 1:
- print(y)
- def p4():
- l = 0
- for x in range(100100, 300301):
- if divs(x, 'count') - 2 == 3:
- l += 1
- print(l)
- def p5():
- k = 0
- max = -1
- for x in range(231893, 251860):
- l = divs(x, 'count')
- if l >= k:
- max = x
- k = l
- print(k, max)
- def p6():
- k = 0
- for x in range(55556, 55777):
- if divs(x, 'count') == 2:
- k += 1
- print(k)
- def p7(n):
- return divs(n, 'count')
- def p8():
- k = 0
- max = 0
- for x in range(100, 100101):
- if divs(x, 'count') == 2:
- k += 1
- max = x
- print(k, max)
- def p9():
- k = 0
- min = -1
- for x in range(591645, 592846):
- l = divs(x, 'count')
- if l > k:
- min = x
- k = l
- print(min)
- def p10():
- k = 0
- for x in range(12345, 12426):
- l = divs(x)
- if any(is_palindrome(x) for x in l if x > 9):
- k += 1
- print(k)
- def p11():
- k = 0
- for x in range(300000, 333001):
- if divs(x, 'count') == 3:
- k += 1
- print(k)
- def p12():
- k = 0
- for x in range(53671, 125699):
- if divs(x, 'count') == 5:
- k += 1
- print(k)
- def p13(n):
- k = 0
- for x in range(1, n):
- if gcd(x, n) == 1:
- k += 1
- return k
- def p14():
- k = 0
- for x in divs(9999556):
- k += p13(x)
- print(k)
- def p15():
- m = p13(1013)
- a = [x for x in range(0, 1014) if gcd(x, 1013) == 1]
- summ = 0
- for x in a:
- summ += (x ** (m)) % 1013
- print(summ / len(a))
- def p16():
- a = divs(230010)
- b = divs(600270)
- c = [x for x in a if x in b]
- print(c)
- def p17():
- k = 0
- for x in range(1, 10001):
- if [x % 2 == 1 for x in divs(x)].count(1) == 1:
- k += 1
- print(k)
- def M(n):
- d = divs(n)
- l = len(d)
- if l < 6:
- return 0
- else:
- return d[1] * d[2] * d[3] * d[4] * d[5]
- def p18():
- k = 0
- for x in range(500000000, 520000000):
- if 0 < M(x) < x:
- print(f'{x}. {M(x)}')
- k += 1
- if k == 5:
- break
- def p19():
- for y in range(190201, 190281):
- m = divs(y)
- if [x % 2 == 0 for x in m].count(1) == 4:
- for x in range(len(m) - 1, 0, -1):
- if m[x] % 2 == 0:
- print(m[x], end=' ')
- print('\n')
- def M1(n):
- d = divs(n) # включая 1 и n
- l = len(d)
- d.pop(0)
- d.pop(-1)
- if l <= 3:
- return 0
- else:
- return max(d) + min(d)
- def p20():
- k = 0
- for x in range(452022, 502021):
- if M1(x) % 7 == 3:
- print(x, M1(x))
- k += 1
- if k == 5:
- break
- def p21():
- k = 0
- for x in range(88535, 153374):
- if [x % 2 == 1 for x in divs(x)].count(1) == 5:
- k += 1
- print(k)
- def p22():
- k = 0
- for x in range(88535, 153374):
- if [x % 2 == 0 for x in divs(x)].count(1) == 5:
- k += 1
- print(k)
- def p23():
- for y in range(198374, 295382):
- m = divs(y)
- if [x % 2 == 1 for x in m].count(1) == 7:
- for x in range(len(m) - 1, -1, -1):
- if m[x] % 2 == 1:
- print(m[x], end=' ')
- print('\n')
- def p24():
- k = 0
- for y in range(100100, 300301):
- if len([x for x in divs(y)]) == 5:
- k += 1
- print(k)
- def p25():
- k = 0
- for y in range(52112, 623123):
- if len([x for x in divs(y) if divs(x, 'count') == 2]) == 3:
- k += 1
- print(k)
- def p26():
- k = 0
- a = [x for x in range(1000)]
- for x in range(2, len(a)):
- for y in range(x ** 2, len(a), x):
- a[y] = 0
- a.sort()
- a = set(a)
- a.remove(0)
- a.remove(1)
- b = [x ** 2 for x in a]
- for x in range(52112, 623122):
- if len([y for y in divs(x) if y in b]) == 3:
- k += 1
- print(k)
- def p27():
- k = 0
- s = 0
- for y in range(88535, 167043):
- m = divs(y)
- if [x % 2 == 0 for x in m].count(1) == 5:
- k += 1
- s += y
- print(k, (s / k))
- def p28():
- d = set()
- for m in range(0, 100):
- for n in range(0, 100):
- if len(str(int((4 ** (m)) * (5 ** n)))) == 9:
- d.add((4 ** (m)) * (5 ** n))
- d = list(d)
- d.sort()
- k = 0
- for x in range(200000000, 600000001):
- if x in d:
- k += 1
- print(k)
- def p29():
- k = 0
- d = set()
- for m in range(0, 1000, 2):
- for n in range(1, 1000, 2):
- if 200000000 <= (2 ** m) * (3 ** n) <= 400000000:
- k += 1
- print(k)
- def p30():
- k = 0
- for n in range(0, 1000, 2):
- for m in range(1, 1000, 2):
- if 100000000 <= (5 ** m) * (7 ** n) <= 600000000:
- k += 1
- print((5 ** n) * (7 ** m))
Add Comment
Please, Sign In to add comment