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 18: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)
