O número é primo? (com uma reviravolta)

Escreva um método que receba um número e retorne true se ele for primo, ou false caso contrário. Os valores de entrada podem ser muito grandes, então verificar todos os divisores possíveis é lento demais para o limite de tempo de 10 segundos.

Crivo de Eratóstenes

Exemplos

Program.prime(7L);             // retorna true
Program.prime(56963L);         // retorna true
Program.prime(5151512515524L); // retorna false

Notas

Um número primo só é divisível sem deixar resto por ele mesmo e por 1.