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 Groovy)) |
m (Ejercicio 5: Buscar el número primo que ocupa la posición 10001 en la secuencia de números primos trasladada a 2010 Ejercicio 5: Buscar el número primo que ocupa la posición 10001 en la secuencia de números primos) |
||
| (No se muestran 5 ediciones intermedias de 3 usuarios) | |||
| 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. | ||
== Solución 1 (en wxMaxima 0.84) == | == 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 puede 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) | ||
| + | == Solución 3 (en wxMaxima 0.84) == | ||
| + | |||
| + | Otra solución usando Máxima es: | ||
| + | |||
| + | (i%1) a:1$ | ||
| + | cont:0$ | ||
| + | for i:1 step a while cont<10001 do ( | ||
| + | a:next_prime(a),cont:cont+1,if(cont=10001)then(print("El nº primo de la posición 10001 es",a)) | ||
| + | )$; | ||
| + | |||
| + | (o%1) "El nº primo de la posición 10001 es"104743 resuelto por[[Usuario:Rafatelo|Rafatelo]] | ||
Revisión actual del 09:55 8 mar 2011
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 puede 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)
Solución 3 (en wxMaxima 0.84)
Otra solución usando Máxima es:
(i%1) a:1$
cont:0$
for i:1 step a while cont<10001 do (
a:next_prime(a),cont:cont+1,if(cont=10001)then(print("El nº primo de la posición 10001 es",a))
)$;
(o%1) "El nº primo de la posición 10001 es"104743 resuelto porRafatelo
