Daniele Fucini 7c055b749e
Add more solutions and minor corrections
Added solutions for problem 71, 72, 73, 74 and 75 in C and python
and made a few corrections in the code for other problems.
2019-09-29 19:38:39 +02:00

40 lines
1.2 KiB
Python

#!/usr/bin/python3
# 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 21 elements in this set.
#
# How many elements would be contained in the set of reduced proper fractions for d ≤ 1,000,000?
from timeit import default_timer
from projecteuler import sieve, phi
def main():
start = default_timer()
N = 1000001
count = 0
primes = sieve(N)
# For any denominator d, the number of reduced proper fractions is
# the number of fractions n/d where gcd(n, d)=1, which is the definition
# of Euler's Totient Function phi. It's sufficient to calculate phi for each
# denominator and sum the value.
for i in range(2, N):
count = count + phi(i, primes)
end = default_timer()
print('Project Euler, Problem 72')
print('Answer: {}'.format(count))
print('Elapsed time: {:.9f} seconds'.format(end - start))
if __name__ == '__main__':
main()