elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Codigo] Interesante codigo imprime numero primo de mayor cifras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Codigo] Interesante codigo imprime numero primo de mayor cifras  (Leído 4,659 veces)
Miky Gonzalez

Desconectado Desconectado

Mensajes: 87

http://mikygonzalez.comule.com/blog/


Ver Perfil WWW
[Codigo] Interesante codigo imprime numero primo de mayor cifras
« en: 12 Octubre 2013, 14:07 pm »

Solo por interés, les dejo un código proveniente de una fuente web que les dejo más abajo:

Código
  1. #include <stdio.h>
  2.  
  3. int m = 1711276033, N = 1, t[1 << 25] = { 2 }, a, *p, i, e = 39717691, s, c, U = 1;
  4.  
  5. void g(int d, int h) {
  6. for(i = s; i < 1 << 24; i *= 2)
  7. d = d * 1LL * d % m;
  8. for(p = t; p < t + N; p += s)
  9. for(i = s, c = 1; i; i--)
  10. a = p[s] * (h ? c : 1LL) % m, p[s] = (m * 1U + *p - a) * (h ? 1LL : c) % m, *p = (a * 1U + *p) % m, p++, c = c * 1LL * d % m;
  11. }
  12.  
  13. int main() {
  14. while(e /= 2) {
  15. N *= 2;
  16. U = U * 1LL * (m + 1) / 2 % m;
  17. for(s = N; s /= 2;)
  18. g(40, 0);
  19. for(p = t; p < t + N; p++)
  20. *p = *p * 1LL ** p % m * U % m;
  21. for(s = 1; s < N; s *= 2)
  22. g(983983719, 1);
  23. for(a = 0, p = t; p < t + N;)
  24. a += *p << (e & 1), *p++ = a % 10, a /= 10;
  25. }
  26. while(!*--p);
  27. for(t[0]--; p >= t;)
  28. putchar(48 + *p--);
  29.  
  30. return 0;
  31. }
  32.  

[1] http://ijunkey.com/a-small-c-program-to-print-the-biggest-prime-number/


En línea

Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica:


EN CONSTRUCCIÓN
erest0r

Desconectado Desconectado

Mensajes: 147



Ver Perfil
Re: [Codigo] Interesante codigo imprime numero primo de mayor cifras
« Respuesta #1 en: 12 Octubre 2013, 16:08 pm »

Estoy mas perdido que el hijo de Lindbergh  :huh:


En línea

Cruzar la calle junto a mucha gente cuando el semáforo sigue en rojo da seguridad y espíritu de equipo... o cruzamos todos o morimos juntos.
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: [Codigo] Interesante codigo imprime numero primo de mayor cifras
« Respuesta #2 en: 12 Octubre 2013, 21:25 pm »

Estupendo ejemplo sobre cómo no se debe de programar.

No quito el mérito de programarlo, ya que tiene su curro... pero desde luego el código no es capaz de leerlo cualquiera.
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: [Codigo] Interesante codigo imprime numero primo de mayor cifras
« Respuesta #3 en: 13 Octubre 2013, 14:18 pm »

Estupendo ejemplo sobre cómo no se debe de programar.

No quito el mérito de programarlo, ya que tiene su curro... pero desde luego el código no es capaz de leerlo cualquiera.

No hay comentarios que expliquen el workflow del programa, y las variables tienen nombres que no dicen nada. Eso combinado con que se trate de un programa que realiza operaciones matemáticas medianamente complejas es suficiente para que sea casi ilegible.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Codigo] Interesante codigo imprime numero primo de mayor cifras
« Respuesta #4 en: 13 Octubre 2013, 15:56 pm »

O sea que el programador este es un artista cifrando código :laugh:
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [Codigo] Interesante codigo imprime numero primo de mayor cifras
« Respuesta #5 en: 13 Octubre 2013, 16:39 pm »

Citar
This program computes 243112609-1, which is the biggest
known prime number (about 13 million digits
Yo creo que se saben primos más grandes :o

Mirad, hice este código hace un tiempo, que calcula el primer programa que hizo Steve Wozniak:
Código
  1. #include <iostream>
  2. int i=63, f[11]={29,7,0,3,-79,87,-8,3,-6,-8,-67}, c=0;
  3. int main () {
  4. i+=9;
  5. for(int k=f[2]-1;i!=34;k++,i+=f[k]){
  6.  std::cout << (char)i;
  7.  c = (i*5!=165)? c:c+=1;
  8.  i = c<3? i:i+=1;
  9.  k=(bool)c?k=1:k;
  10. }
  11. system("pause > nul");
  12. return 0;
  13. }
Corredlo y disfrutadlo.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [Codigo] Interesante codigo imprime numero primo de mayor cifras
« Respuesta #6 en: 13 Octubre 2013, 21:09 pm »

hice este código hace un tiempo
Cada una de las tres sentencias:
Código
  1. c = (i * 5!=165)? c:c+=1;
  2. i = c<3? i:i+=1;
  3. k = (bool)c?k=1:k;
Tiene dos problemas.

El mas importante es la posibilidad, dependiendo de la expresión que controla al operador "?:", de acceder y modificar una variable en dos ocasiones entre puntos de secuencia y eso no es valido (comportamiento no definido).

El otro es el uso forzado del operador "?:" ya que no tiene caso almacenar en una variable el valor de ... esa variable. Es mejor utilizar tres sentencias condicionales "if":
Código
  1. if (i == 33)
  2.   c++;
  3. if (c >= 3)
  4.   i++;
  5. if (c)
  6.   k = 1;

Espero el comentario se tome como una critica constructiva.

Un saludo
En línea

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
Miky Gonzalez

Desconectado Desconectado

Mensajes: 87

http://mikygonzalez.comule.com/blog/


Ver Perfil WWW
Re: [Codigo] Interesante codigo imprime numero primo de mayor cifras
« Respuesta #7 en: 13 Octubre 2013, 21:13 pm »

La cosa estaba en poner los códigos de la manera más ofuscada posible  :xD
En línea

Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica:


EN CONSTRUCCIÓN
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [Codigo] Interesante codigo imprime numero primo de mayor cifras
« Respuesta #8 en: 13 Octubre 2013, 23:09 pm »

rir3760, cuando hice ese código, era obviamente para ofuscarlo. Creo que todo el mundo sabe, que u programa como ese (compílese quién no sepa que hace), se puede hacer con infinita menos complejidad de la que tiene.

Un operador ternario, supone un mayor tiempo de razonamiento para saber qué hace, que una sentencia condicional "IF()".
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Escribir en Label numeros que vayan aumentando sus cifras por codigo, Ayuda! « 1 2 »
.NET (C#, VB.NET, ASP)
Braayhaan 10 9,968 Último mensaje 30 Agosto 2009, 19:39 pm
por raul338
ayuda con codigo en localiza imprime y suprime
Programación C/C++
Amidaken 0 1,788 Último mensaje 30 Abril 2011, 06:59 am
por Amidaken
Programa que imprime su código
Programación C/C++
N0body 3 2,477 Último mensaje 28 Agosto 2011, 23:49 pm
por madpitbull_99
codigo no imprime como deberia, ayuda!
Programación C/C++
balanis 3 2,099 Último mensaje 17 Abril 2012, 18:42 pm
por balanis
Descubren el mayor número primo: 17 millones de dígitos
Noticias
wolfbcn 2 2,357 Último mensaje 7 Febrero 2013, 22:31 pm
por anonimo12121
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines