私は現在、Project Euler の質問を Python で処理しようとしています (今日取り上げたものです)。私が取り組んでいる質問は、質問 5 です。
2520 は、1 から 10 までの各数値で割り切れる最小の数値です。
1 から 20 までのすべての数で割り切れる最小の正の数は?
以前にJavaを使用して問題を解決したことがあるので、以前と同じ方法を使用して、反復するループを作成しましたが、コードが終了しないようです。
パイソン:
i = 1
while 1:
if i%2 == 0 and i%3==0 and i%4==0 and i%5==0 and i%6==0 and i%7==0 and i%8==0 and i%9==0 and i%10==0 and i%11==0 and i%12==0 and i%13==0 and i%14==0 and i%15==0 and i%16==0 and i%17==0 and i%18==0 and i%19==0:
print i
break
i+=1
ジャワ:
public class p5
{
public static void main(String[] args)
{
for (int i=1;;i++)
{
if (i%1==0&&i%2==0&&i%3==0&&i%4==0&&i%5==0&&i%6==0&&i%7==0&&i%8==0&&i%9==0&&i%10==0&&i%11==0&&i%12==0&&i%13==0&&i%14==0&&i%15==0&&i%16==0&&i%17==0&&i%18==0&&i%19==0&&i%20==0)
{
System.out.println(i);
break;
}
}
}
}
Java は私のコンピューターで 3 秒以内にそれを実行しましたが、Python コードは決して終了していないように見えました。任意のヒント?
編集:
どうやら私は何か間違って入力したようで、それが原因で終了しませんでした。ただし、全体が正しく記述されていても (私の Java と同じ出力で)、それでも1 分 20 秒かかりましたが、Java の場合は約 1 ~ 2 秒かかりました。私は何か間違ったことをしていますか?それとも、Pythonのパフォーマンスはそれほど悪いのですか(これはよくあることではありません)