|
12345678910111213141516171819202122 |
- from collections import defaultdict
- from itertools import count
-
-
- def divisors(N):
- ds = {1, N}
- for n in range(2, int(N**0.5) + 1):
- if N % n == 0:
- ds.update({n, N // n})
- return ds
-
-
- lim = int(text)
- ans1, ans2 = None, None
- n = 830_000
- while ans1 is None or ans2 is None:
- ds = divisors(n)
- if ans1 is None and sum(ds) > lim // 10:
- ans1 = n
- if ans2 is None and sum(d for d in ds if n // d <= 50) > lim // 11:
- ans2 = n
- n += 1
|