У меня есть несколько различных решений проблемы 5 проекта Эйлера , но разница во времени выполнения между двумя языками / платформами в этой конкретной реализации меня заинтриговала. Я не делал никакой оптимизации с помощью флагов компилятора, просто javac
(через командную строку) и csc
(через Visual Studio).
Вот код Java. Он завершается через 55 мс.
public class Problem005b { public static void main(String[] args) { long begin = System.currentTimeMillis(); int i = 20; while (true) { if ( (i % 19 == 0) && (i % 18 == 0) && (i % 17 == 0) && (i % 16 == 0) && (i % 15 == 0) && (i % 14 == 0) && (i % 13 == 0) && (i % 12 == 0) && (i % 11 == 0) ) { break; } i += 20; } long end = System.currentTimeMillis(); System.out.println(i); System.out.println(end-begin + "ms"); }
}
Вот идентичный код C #. Он завершается через 320 мс
using System; namespace ProjectEuler05 { class Problem005 { static void Main(String[] args) { DateTime begin = DateTime.Now; int i = 20; while (true) { if ( (i % 19 == 0) && (i % 18 == 0) && (i % 17 == 0) && (i % 16 == 0) && (i % 15 == 0) && (i % 14 == 0) && (i % 13 == 0) && (i % 12 == 0) && (i % 11 == 0) ) { break; } i += 20; } DateTime end = DateTime.Now; TimeSpan elapsed = end - begin; Console.WriteLine(i); Console.WriteLine(elapsed.TotalMilliseconds + "ms"); } } }