Solve problem 179.
This commit is contained in:
33
python/e179.py
Normal file
33
python/e179.py
Normal file
@@ -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)
|
||||||
|
|
||||||
Reference in New Issue
Block a user