fixnum y números primos en rubí
-
23-08-2019 - |
Pregunta
Antes de que me puse a punto de escribir esto mismo, nadie ha visto una aplicación de rubí de la siguiente comportamiento?
puts 7.nextprime(); #=> 11
puts 7.previousprime(); #=> 5
puts 7.isprime(); #=> true
Es evidente que este tipo de cosas sería desagradable para un gran número de números enteros pero no superior a unos pocos miles (la instancia común para mí) una aplicación sensata es factible, por lo tanto, la pregunta.
Solución
Rubí viene con una clase Prime
incorporado que le permite iterar a través de los números primos a partir de 1, pero no veo manera de inicializar con un valor de partida distinto de 1, ni un cheque de predicados para determinar si es o no un número es primo. Yo diría que ir a por ello, aunque se debe tener en cuenta que las matemáticas en Ruby puede ser lento y si el rendimiento es un factor que puede ser mejor teniendo en cuenta la escritura como una extensión de C o Java. Aquí está un ejemplo de cómo utilizar RubyInline para generar números primos en C .
Además, le sugiero que evitar el uso del nombre del método 7.isprime
-. La convención en Ruby es 7.prime?
Otros consejos
Tome un vistazo a los fragmentos encontrados aquí . Ellos podrían darle una ventaja inicial.