歐拉計劃 33

分數 49/98 是一個奇怪的分數:當一個菜鳥數學家試圖對其進行簡化時,
他可能會錯誤地可以認爲通過將分子和分母上的9同時去除得到 49/98 = 4/8。但他得到的結果卻是正確的。

我們將30/50 = 3/5這樣的分數作爲普通個例。

一共有四個這樣的非普通分數,其值小於1,並且包括分子和分母都包括2位數。

如果將這四個分數的乘積約分到最簡式,分母是多少?

numerator = 1
denominator = 1
for i in range(11, 99):
    i_1 = i % 10
    if i_1 == 0:
        continue
    i_2 = i // 10
    # j_1 = i_1
    for j_2 in range(i_2 + 1, 10):
        j = j_2 * 10 + i_1
        if i / j == i_2 / j_2:
            numerator *= i_2
            denominator *= j_2
    # j_2 = i_1
    if i_2 < i_1:
        for j_1 in range(1, 10):
            j = i_1 * 10 + j_1
            if i / j == i_2 / j_1:
                numerator *= i_2
                denominator *= j_1
    # j_1 = i_2
    for j_2 in range(i_2 + 1, 10):
        j = j_2 * 10 + i_2
        if i / j == i_1 / j_2:
            numerator *= i_1
            denominator *= j_2
    # j_2 = i_2
    for j_1 in range(i_1 + 1, 10):
        j = i_2 * 10 + j_1
        if i / j == i_1 / j_1:
            numerator *= i_1
            denominator *= j_1
for i in range(numerator, 1, -1):
    if numerator % i == 0 and denominator % i == 0:
        break
print(denominator // i)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章