Diferencia entre revisiones de «2010 Ejercicio 5: Buscar el número primo que ocupa la posición 10001 en la secuencia de números primos»
De Software Libre para la Enseñanza y el Aprendizaje de las Matemáticas (2010-11)
(→Solución 1 (en wxMaxima 0.84)) |
|||
Línea 1: | Línea 1: | ||
− | == Enunciado == | + | <nowiki>Inserte aquí texto sin formato</nowiki><nowiki>Inserte aquí texto sin formato</nowiki>== Enunciado == |
Buscar el número primo que ocupa la posición 10001 en la secuencia de números primos. | Buscar el número primo que ocupa la posición 10001 en la secuencia de números primos. | ||
Línea 17: | Línea 17: | ||
(o%1) El Número primo en la posición 10001 es: 104743 | (o%1) El Número primo en la posición 10001 es: 104743 | ||
done | done | ||
+ | |||
+ | |||
+ | == Solución 2 (en Groovy) == | ||
+ | A igual que mis compañeros en otros ejercicios, voy a utilizar el lenguaje de programación Groovy. Se probar el script en la página http://groovyconsole.appspot.com/ | ||
+ | |||
+ | Solución: 104743 | ||
+ | |||
+ | |||
+ | def es_primo(int num) { | ||
+ | if( num == 1 ) | ||
+ | return false; | ||
+ | else if( num < 4 ) | ||
+ | return true; | ||
+ | |||
+ | int m = (int) Math.sqrt(num); | ||
+ | for (int i = 2; i <= m; i++) { | ||
+ | if (num % i == 0) | ||
+ | return false; | ||
+ | } | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | def numero=1 | ||
+ | def primo =1 | ||
+ | while(numero < 10001){ | ||
+ | if(es_primo(primo)){ | ||
+ | numero = numero +1; | ||
+ | } | ||
+ | primo = primo +1; | ||
+ | } | ||
+ | |||
+ | println(primo) |
Revisión del 19:29 18 may 2010
Inserte aquí texto sin formatoInserte aquí texto sin formato== Enunciado == Buscar el número primo que ocupa la posición 10001 en la secuencia de números primos.
Solución 1 (en wxMaxima 0.84)
Una solución usando el lenguaje de cálculo simbólico Máxima es:
(i%1) cont: 0$ for i: 1 step 1 while cont<10001 do ( if (primep(i) = true) then( cont: cont+1), if (cont = 10001) then( print("El Número primo en la posición 10001 es: ",i)) );
(o%1) El Número primo en la posición 10001 es: 104743 done
Solución 2 (en Groovy)
A igual que mis compañeros en otros ejercicios, voy a utilizar el lenguaje de programación Groovy. Se probar el script en la página http://groovyconsole.appspot.com/
Solución: 104743
def es_primo(int num) {
if( num == 1 ) return false; else if( num < 4 ) return true; int m = (int) Math.sqrt(num); for (int i = 2; i <= m; i++) { if (num % i == 0) return false; }
return true; }
def numero=1 def primo =1 while(numero < 10001){
if(es_primo(primo)){ numero = numero +1; }
primo = primo +1; }
println(primo)