У меня есть следующий код F #, который должен найти наименьший простой множитель данного числа x:
let smallestFactor x : int64 =
[2L .. x] |> Seq.find( fun s -> x % s = 0L )
Однако, когда я вызываю функцию с большим номером, например, 600851475143 моя Visual Studio занимает несколько ГБ памяти и всей мощности процессора и никогда не возвращается.
Я запускаю код через JetBrains ReSharper в качестве модульного теста, написанного на C #:
[Test]
public void SmallestFactorOf600851475143()
{
var result = Problem3.smallestFactor( 600851475143 );
}
Мой код F # и номер являются частью решения для задачи 3, Проект Эйлера
Я только начинаю с F #. Есть ли очевидная проблема с моим кодом?