분수 49/98에는 재미있는 성질이 있습니다. 수학을 잘 모르는 사람이 분모와 분자에서 9를 각각 지워서 간단히 하려고 49/98 = 4/8 처럼 계산해도 올바른 결과가 됩니다.
이에 비해 30/50 = 3/5 같은 경우는 다소 진부한 예라고 볼 수 있습니다.
위와 같은 성질을 가지면서 '진부하지 않은' 분수는, 값이 1보다 작고 분자와 분모가 2자리 정수인 경우 모두 4개가 있습니다.
이 4개의 분수를 곱해서 약분했을 때 분모는 얼마입니까?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | numX = 1 denY = 1 for i in range(10, 100): if i % 10 == 0: continue for j in range(10, 100): numerator = [] denominator = [] if j % 10 == 0: continue elif i >= j: continue if i/10 != i%10: numerator.append(i/10) numerator.append(i%10) if j/10 != j%10: denominator.append(j/10) denominator.append(j%10) if len(numerator) ==2 and len(denominator) == 2: if denominator[0] == numerator[1] and i * denominator[1] == j * numerator[0]: numX *= i denY *= j print numX print denY print "%d" % (float(denY)/float(numX)) | cs |
C:\Users\cse\Desktop>python test.py
387296
38729600
100
'* Computer Science > Project Euler' 카테고리의 다른 글
project euler 목적. (0) | 2016.08.30 |
---|---|
project euler 34. problem (0) | 2016.08.29 |
project euler 32. problem (0) | 2016.08.26 |
project euler 30. problem (0) | 2016.08.25 |
project euler 29. problem (0) | 2016.08.25 |