Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SXF en 6 Marzo 2012, 00:41 am



Título: Reto de programacion
Publicado por: 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 (NO, este es el foro de C/C++);
Empiezo con el mio:

en c:

Código
  1. int esPrimo(int n){
  2.    for (int i=2; i<n; i++) if(n%i==0) return 0;
  3.    return 1;
  4. }


Título: Re: Reto de programacion
Publicado por: Caballo_Alado en 6 Marzo 2012, 01:30 am
Tiene error el que puse no me había dado cuenta e.e trabajo para hacer otro ahorita. :silbar:


Título: Re: Reto de programacion
Publicado por: SXF en 6 Marzo 2012, 02:03 am
El problema de ese code es que si es primo no devuelve nada.


Título: Re: Reto de programacion
Publicado por: rir3760 en 6 Marzo 2012, 02:07 am
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


Título: Re: Reto de programacion
Publicado por: SXF en 6 Marzo 2012, 02:14 am
He pensado en algo así:

Código
  1. int primo(int n, i){
  2.    for(;((n>i)&&((n%i)!=0));i++)  return ((n%i)!=0);
  3. }

EI: juntando mensajes.

Bueno veo que un poco diferente, alli se habla de numeros circulares  primos. Aunque gracias por la anotación.


Título: Re: Reto de programacion
Publicado por: Xandrete en 6 Marzo 2012, 20:03 pm
He pensado en algo así:

Código
  1. int primo(int n, i){
  2.    for(;((n>i)&&((n%i)!=0));i++)  return ((n%i)!=0);
  3. }

EI: juntando mensajes.

Bueno veo que un poco diferente, alli se habla de numeros circulares  primos. Aunque gracias por la anotación.
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:

Código
  1. int esPrimo(int n){
  2.    for (int i=2; i<n; i++) if(n%i==0) return 0;
  3.    return 1;
  4. }

Lo de corto lo cumple. Lo de eficiente...  :rolleyes:



Título: Re: Reto de programacion
Publicado por: $Edu$ en 7 Marzo 2012, 18:43 pm
Código
  1. int esPrimo(int n){
  2.    for (int i=2; i<n; i++) if(n%i==0) return 0;
  3.    return 1;
  4. }

Si haces que vaya desde i = 2 a i = Raiz(n) sera mas rapido.


Título: Re: Reto de programacion
Publicado por: naderST en 7 Marzo 2012, 19:14 pm
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:

Código
  1. int esPrimo(int n){
  2.    for (int i=2; i<n; i++) if(n%i==0) return 0;
  3.    return 1;
  4. }
Eso es C++ :silbar:


Título: Re: Reto de programacion
Publicado por: nirvguy en 7 Marzo 2012, 19:22 pm
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++:
Código
  1. bool primo(int x) {
  2.    float tmp = pow(x,2)/x;
  3.    return pow(x,2)-(int)tmp*x;
  4. }
  5.  
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é?


Título: Re: Reto de programacion
Publicado por: Eternal Idol en 7 Marzo 2012, 19:29 pm
EDITADO: 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).