Skip to content

Instantly share code, notes, and snippets.

@andreaja
Created October 4, 2008 23:29
Show Gist options
  • Save andreaja/14821 to your computer and use it in GitHub Desktop.
Save andreaja/14821 to your computer and use it in GitHub Desktop.
-module(problem3).
-export([solve/0]).
-include_lib("eunit/include/eunit.hrl").
primes(N) when N == 1 ->
[1];
primes(N) ->
primes(N, [], 2).
primes(1, Primes, _) -> Primes;
primes(N, Primes, Try) when N rem Try == 0 ->
primes(N div Try, [Try | Primes], Try);
primes(N, Primes, Try) ->
primes(N, Primes, Try + 1).
solve() ->
lists:max(primes(600851475143)).
primes_test_() ->
[
?_assertMatch([1], primes(1)),
?_assertMatch([3,2], primes(6)),
?_assertMatch([13], primes(13)),
?_assertMatch([13,5,3],primes(195))
].
solve_test_() ->
[
?_assertMatch(6857,solve())
].
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment