Reto de programacion

Iniciado por SXF, 6 Marzo 2012, 00:41 AM

0 Miembros y 1 Visitante están viendo este tema.

SXF

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;
}

Caballo_Alado

#1
Tiene error el que puse no me había dado cuenta e.e trabajo para hacer otro ahorita. :silbar:
♫           ♪ "I'm sexy and I know it"     ♪      ♫

SXF

El problema de ese code es que si es primo no devuelve nada.

rir3760

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!!!.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

SXF

#4
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.

Xandrete

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:


$Edu$

#6
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.

naderST

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:

nirvguy

#8
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 (cpp) [Seleccionar]

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. Deberías aprenderlo es muy práctico.

EDITADO: Estaba respondiendo.... se me borro el post, ¿Por qué?
Todas mis letras han sido pedazos de poesía y los pedazos de poesía se toman de poemas que comúnmente no tienen sentido
en primer termino.
               Kurt Cobain

Eternal Idol

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).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón