Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
16
Task/Additive-primes/Erlang/additive-primes.erl
Normal file
16
Task/Additive-primes/Erlang/additive-primes.erl
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
main(_) ->
|
||||
AddPrimes = [N || N <- lists:seq(2,500), isprime(N) andalso isprime(digitsum(N))],
|
||||
io:format("The additive primes up to 500 are:~n~p~n~n", [AddPrimes]),
|
||||
io:format("There are ~b of them.~n", [length(AddPrimes)]).
|
||||
|
||||
isprime(N) when N < 2 -> false;
|
||||
isprime(N) -> isprime(N, 2, 0, <<1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6>>).
|
||||
|
||||
isprime(N, D, J, Wheel) when J =:= byte_size(Wheel) -> isprime(N, D, 3, Wheel);
|
||||
isprime(N, D, _, _) when D*D > N -> true;
|
||||
isprime(N, D, _, _) when N rem D =:= 0 -> false;
|
||||
isprime(N, D, J, Wheel) -> isprime(N, D + binary:at(Wheel, J), J + 1, Wheel).
|
||||
|
||||
digitsum(N) -> digitsum(N, 0).
|
||||
digitsum(0, S) -> S;
|
||||
digitsum(N, S) -> digitsum(N div 10, S + N rem 10).
|
||||
Loading…
Add table
Add a link
Reference in a new issue