Project Euler 5
and と i のいずれでも割り切れる数は不要なので gcd で取り除く。lcm で求める方法もある。
using System; namespace PE { public class PE005 { public static void Calc() { int ans = 1; for (int i = 1; i <= 20; i++) { ans = ans / Util.Gcd(ans, i) * i; } Console.WriteLine(ans); } } }
- ans と i との乗算を先に行うと、int だとオーバーフローする。