Sexy primes: Difference between revisions

Content added Content deleted
m (Simplified Prolog code)
m (Simplified Prolog code again)
Line 1,471: Line 1,471:
last_n(List, Max, Length, Last, Last_len).
last_n(List, Max, Length, Last, Last_len).


unsexy_prime(P):-
unsexy(P):-
is_prime(P),
P1 is P + 6,
P1 is P + 6,
\+is_prime(P1),
\+is_prime(P1),
P2 is P - 6,
P2 is P - 6,
\+is_prime(P2).
\+is_prime(P2).

unsexy_primes(Limit, [2|P]):-
unsexy_primes(3, Limit, P).

unsexy_primes(From, To, []):-
From > To,
!.
unsexy_primes(From, To, [From|Rest]):-
unsexy_prime(From),
!,
Next is From + 2,
unsexy_primes(Next, To, Rest).
unsexy_primes(From, To, Rest):-
Next is From + 2,
unsexy_primes(Next, To, Rest).


main(Limit):-
main(Limit):-
Line 1,500: Line 1,484:
print_sexy_prime_groups(4, Limit),
print_sexy_prime_groups(4, Limit),
print_sexy_prime_groups(5, Limit),
print_sexy_prime_groups(5, Limit),
unsexy_primes(Limit, Unsexy),
findall(P, (is_prime(P), P =< Limit, unsexy(P)), Unsexy),
length(Unsexy, Count),
length(Unsexy, Count),
writef('Number of unsexy primes is %t\n', [Count]),
writef('Number of unsexy primes is %t\n', [Count]),