Autor
|
Tema: [Codigo] Interesante codigo imprime numero primo de mayor cifras (Leído 5,030 veces)
|
Miky Gonzalez
Desconectado
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
Solo por interés, les dejo un código proveniente de una fuente web que les dejo más abajo: #include <stdio.h> int m = 1711276033, N = 1, t[1 << 25] = { 2 }, a, *p, i, e = 39717691, s, c, U = 1; void g(int d, int h) { for(i = s; i < 1 << 24; i *= 2) d = d * 1LL * d % m; for(p = t; p < t + N; p += s) for(i = s, c = 1; i; i--) 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; } int main() { while(e /= 2) { N *= 2; U = U * 1LL * (m + 1) / 2 % m; for(s = N; s /= 2;) g(40, 0); for(p = t; p < t + N; p++) *p = *p * 1LL ** p % m * U % m; for(s = 1; s < N; s *= 2) g(983983719, 1); for(a = 0, p = t; p < t + N;) a += *p << (e & 1), *p++ = a % 10, a /= 10; } while(!*--p); for(t[0]--; p >= t;) return 0; }
[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
Mensajes: 147
|
Estoy mas perdido que el hijo de Lindbergh
|
|
|
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
Mensajes: 1.248
|
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
Mensajes: 1.077
|
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
Mensajes: 455
|
O sea que el programador este es un artista cifrando código
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
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 Mirad, hice este código hace un tiempo, que calcula el primer programa que hizo Steve Wozniak: #include <iostream> int i=63, f[11]={29,7,0,3,-79,87,-8,3,-6,-8,-67}, c=0; int main () { i+=9; for(int k=f[2]-1;i!=34;k++,i+=f[k]){ std::cout << (char)i; c = (i*5!=165)? c:c+=1; i = c<3? i:i+=1; k=(bool)c?k=1:k; } system("pause > nul"); return 0; }
Corredlo y disfrutadlo.
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
hice este código hace un tiempo Cada una de las tres sentencias: c = (i * 5!=165)? c:c+=1; i = c<3? i:i+=1; 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": if (i == 33) c++; if (c >= 3) i++; if (c) 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
Mensajes: 87
http://mikygonzalez.comule.com/blog/
|
La cosa estaba en poner los códigos de la manera más ofuscada posible
|
|
|
En línea
|
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica: EN CONSTRUCCIÓN
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
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
|
|
|
|
|
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
|
10,383
|
30 Agosto 2009, 19:39 pm
por raul338
|
|
|
ayuda con codigo en localiza imprime y suprime
Programación C/C++
|
Amidaken
|
0
|
1,973
|
30 Abril 2011, 06:59 am
por Amidaken
|
|
|
Programa que imprime su código
Programación C/C++
|
N0body
|
3
|
2,785
|
28 Agosto 2011, 23:49 pm
por madpitbull_99
|
|
|
codigo no imprime como deberia, ayuda!
Programación C/C++
|
balanis
|
3
|
2,331
|
17 Abril 2012, 18:42 pm
por balanis
|
|
|
Descubren el mayor número primo: 17 millones de dígitos
Noticias
|
wolfbcn
|
2
|
2,752
|
7 Febrero 2013, 22:31 pm
por anonimo12121
|
|