Pergunta

Antes de definir a ponto de escrever isso mesmo, alguém viu uma implementação rubi do seguinte comportamento?

puts 7.nextprime();     #=>  11
puts 7.previousprime(); #=>  5
puts 7.isprime();       #=> true

Obviamente, este tipo de coisa seria feio para grandes números, mas para inteiros não superior a um milhar poucos (a instância comum para mim) uma implementação sensata é factível, daí a pergunta.

Foi útil?

Solução

rubi vem com um built-in class Prime que permite que você para percorrer primos a partir de 1, mas não vejo nenhuma maneira de inicializar-lo com um valor inicial diferente de 1, nem um cheque predicado para determinar se ou não um número é primo. Eu digo para ela ir, mas você deve ter em mente que a matemática em Ruby pode ser lento e se o desempenho é um fator que você pode ser melhor fora pensando em escrever-lo como uma extensão de C ou Java. Aqui está um exemplo de como usar RubyInline para gerar números primos em C .

Além disso, eu sugiro que você evite usar o nome do método 7.isprime -. A convenção em Ruby é 7.prime?

Outras dicas

Veja os trechos encontrados aqui . Eles poderiam dar-lhe um avanço.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top