diff --git a/project_euler/problem_073/sol2.py b/project_euler/problem_073/sol2.py new file mode 100644 index 000000000000..2272c48ba0dc --- /dev/null +++ b/project_euler/problem_073/sol2.py @@ -0,0 +1,48 @@ +""" +Project Euler Problem 73: https://projecteuler.net/problem=73 + +Consider the fraction, n/d, where n and d are positive integers. +If n int: + """ + Returns number of fractions lie between 1/3 and 1/2 in the sorted set + of reduced proper fractions for d ≤ max_d + + >>> solution(4) + 0 + + >>> solution(5) + 1 + + >>> solution(8) + 3 + """ + phi = list(range(limit + 1)) + count = 0 + + for d in range(2, limit + 1): + if phi[d] == d: + for j in range(d, limit + 1, d): + phi[j] -= phi[j] // d + + count += phi[d] // 2 - phi[(d + 2) // 3] + + return count + + +if __name__ == "__main__": + print(f"{solution() = }")