私は、以下に詳述されているプロジェクタイラー パズルを解こうとしています。私の現在の関数は 1 から 10 の数字に対して機能しますが、1 から 20 を試してみると、結果が得られずに永遠にループします。
2520 は、1 から 10 までの各数値で割り切れる最小の数値です。1 から 20 までのすべての数で割り切れる最小の正の数は?
def calculate():
results = dict()
target = 20
num_to_test = 1
while len(results) < target:
for j in range(1, target+1):
results[num_to_test] = True
if num_to_test % j != 0:
# current num_to_test failed in the 1-10, move on
del results[num_to_test]
break
num_to_test += 1
return min(results)
誰でもロジックの問題を見ることができますか?特に、ターゲットが 10 であるのに 20 ではない理由を知りたいです。ありがとう