Buenas, pues para pasar un rato divertido propongo un reto: Crear un codigo que nos diga si un número ES primo lo mas corto y eficiente posible, vale cualquier lenguaje (NO, este es el foro de C/C++);
Empiezo con el mio:
en c:
int esPrimo(int n){
for (int i=2; i<n; i++) if(n%i==0) return 0;
return 1;
}
Tiene error el que puse no me había dado cuenta e.e trabajo para hacer otro ahorita. :silbar:
El problema de ese code es que si es primo no devuelve nada.
Una discusion reciente donde se describe como verificar si un numero es primo utilizando un bucle y con ciertas mejoras (en relacion al publicado en este tema) es quien me ayuda con este programa!!!!numeros!!! (http://foro.elhacker.net/programacion_cc/quien_me_ayuda_con_este_programanumeros-t355418.0.html).
Un saludo
He pensado en algo así:
int primo(int n, i){
for(;((n>i)&&((n%i)!=0));i++) return ((n%i)!=0);
}
EI: juntando mensajes.
Bueno veo que un poco diferente, alli se habla de numeros circulares primos. Aunque gracias por la anotación.
Cita de: SXF en 6 Marzo 2012, 02:14 AM
He pensado en algo así:
int primo(int n, i){
for(;((n>i)&&((n%i)!=0));i++) return ((n%i)!=0);
}
EI: juntando mensajes.
Bueno veo que un poco diferente, alli se habla de numeros circulares primos. Aunque gracias por la anotación.
Cita de: SXF en 6 Marzo 2012, 00:41 AM
Buenas, pues para pasar un rato divertido propongo un reto: Crear un codigo que nos diga si un número ES primo lo mas corto y eficiente posible, vale cualquier lenguaje;
Empiezo con el mio:
en c:
int esPrimo(int n){
for (int i=2; i<n; i++) if(n%i==0) return 0;
return 1;
}
Lo de corto lo cumple. Lo de eficiente... :rolleyes:
int esPrimo(int n){
for (int i=2; i<n; i++) if(n%i==0) return 0;
return 1;
}
Si haces que vaya desde i = 2 a i = Raiz(n) sera mas rapido.
Cita de: SXF en 6 Marzo 2012, 00:41 AM
Buenas, pues para pasar un rato divertido propongo un reto: Crear un codigo que nos diga si un número ES primo lo mas corto y eficiente posible, vale cualquier lenguaje;
Empiezo con el mio:
en c:
int esPrimo(int n){
for (int i=2; i<n; i++) if(n%i==0) return 0;
return 1;
}
Eso es C++ :silbar:
2**x es lo mismo que 2 elevado a la x. def es para definir la función. y lo demás es similar a c/c++ salvo que en python no se pone que tipo de dato devuelve la función ya que puede devolver cualquiera. Te lo pongo en c++:
bool primo(int x) {
float tmp = pow(x,2)/x;
return pow(x,2)-(int)tmp*x;
}
claro incluyendo math.h
Un libro que está muy bueno, bastante completo, es https://launchpadlibrarian.net/18980633/Python%20para%20todos.pdf (https://launchpadlibrarian.net/18980633/Python%20para%20todos.pdf). Deberías aprenderlo es muy práctico.
EDITADO: Estaba respondiendo.... se me borro el post, ¿Por qué?
Cita de: nirvguy en 7 Marzo 2012, 19:22 PMEDITADO: Estaba respondiendo.... se me borro el post, ¿Por qué?
Los mensajes no se borran solos y mucho menos dos veces. ¿No te parece? Lee tus mensajes privados y no pongas codigo de Python aca, no corresponde (diga lo que diga cualquier otro usuario).