mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
feat: add Project Euler problem 073 solution 1 (#6273)
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
d8ab8a0a0e
commit
a041b64f7a
|
@ -839,6 +839,8 @@
|
|||
* Problem 072
|
||||
* [Sol1](project_euler/problem_072/sol1.py)
|
||||
* [Sol2](project_euler/problem_072/sol2.py)
|
||||
* Problem 073
|
||||
* [Sol1](project_euler/problem_073/sol1.py)
|
||||
* Problem 074
|
||||
* [Sol1](project_euler/problem_074/sol1.py)
|
||||
* [Sol2](project_euler/problem_074/sol2.py)
|
||||
|
|
0
project_euler/problem_073/__init__.py
Normal file
0
project_euler/problem_073/__init__.py
Normal file
46
project_euler/problem_073/sol1.py
Normal file
46
project_euler/problem_073/sol1.py
Normal file
|
@ -0,0 +1,46 @@
|
|||
"""
|
||||
Project Euler Problem 73: https://projecteuler.net/problem=73
|
||||
|
||||
Consider the fraction, n/d, where n and d are positive integers.
|
||||
If n<d and HCF(n,d)=1, it is called a reduced proper fraction.
|
||||
|
||||
If we list the set of reduced proper fractions for d ≤ 8 in ascending order of size,
|
||||
we get:
|
||||
|
||||
1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 3/8, 2/5, 3/7, 1/2, 4/7, 3/5, 5/8, 2/3,
|
||||
5/7, 3/4, 4/5, 5/6, 6/7, 7/8
|
||||
|
||||
It can be seen that there are 3 fractions between 1/3 and 1/2.
|
||||
|
||||
How many fractions lie between 1/3 and 1/2 in the sorted set
|
||||
of reduced proper fractions for d ≤ 12,000?
|
||||
"""
|
||||
|
||||
from math import gcd
|
||||
|
||||
|
||||
def solution(max_d: int = 12_000) -> 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
|
||||
"""
|
||||
|
||||
fractions_number = 0
|
||||
for d in range(max_d + 1):
|
||||
for n in range(d // 3 + 1, (d + 1) // 2):
|
||||
if gcd(n, d) == 1:
|
||||
fractions_number += 1
|
||||
return fractions_number
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(f"{solution() = }")
|
Loading…
Reference in New Issue
Block a user