Solve problem 179.
parent
303eae42c9
commit
a410add121
|
@ -0,0 +1,33 @@
|
|||
from lib_prime import get_divisors_count
|
||||
|
||||
|
||||
def euler_179_orig():
|
||||
r = 0
|
||||
for n in range(2, 10**7):
|
||||
if n % 10**5 == 0:
|
||||
print(n)
|
||||
if get_divisors_count(n) == get_divisors_count(n + 1):
|
||||
r += 1
|
||||
return r
|
||||
|
||||
|
||||
def euler_179():
|
||||
""" Much faster version. """
|
||||
upper = 10**7
|
||||
ndivs = [1 for _ in range(0, upper + 2)]
|
||||
for d in range(2, upper // 2):
|
||||
for i in range(d, upper + 2, d):
|
||||
ndivs[i] += 1
|
||||
|
||||
r = 0
|
||||
for i in range(2, upper + 1):
|
||||
if ndivs[i] == ndivs[i + 1]:
|
||||
r += 1
|
||||
return r
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
solution = euler_179()
|
||||
print("e179.py: " + str(solution))
|
||||
assert(solution == 986262)
|
||||
|
Loading…
Reference in New Issue