Question

Avant que je mets sur le point d'écrire moi-même, a vu quelqu'un une mise en œuvre rubis du comportement suivant?

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

Il est évident que ce genre de chose serait moche pour un grand nombre, mais pour les entiers ne dépassant jamais quelques milliers (l'instance commune pour moi) une mise en œuvre sensible est faisable, d'où la question.

Était-ce utile?

La solution

Ruby est livré avec une classe de Prime intégré qui vous permet de parcourir par les nombres premiers à partir de 1, mais je ne vois aucun moyen de l'initialiser avec une valeur de départ autre que 1, ni une vérification de prédicats pour déterminer si oui ou non un certain nombre est premier. Je dirais que pour aller, bien que vous devriez garder à l'esprit que les mathématiques en Ruby peut être lent et si la performance est un facteur que vous pourriez être mieux considérer l'écriture comme un C ou d'extension Java. Voici un exemple de comment utiliser RubyInline pour générer des nombres premiers en C .

En outre, je vous suggère d'éviter d'utiliser le nom de la méthode 7.isprime -. La convention Ruby est 7.prime?

Autres conseils

Jetez un oeil aux extraits trouvés . Ils pourraient vous donner un bon départ.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top