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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 ... 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 [310] 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 ... 401
3091  Programación / Programación C/C++ / Re:[Aporte] Detector de números primos en C++ en: 11 Agosto 2014, 15:06 pm
Con 100, significa 100 primos eh?
3092  Programación / Programación C/C++ / Re: [Aporte] Detector de números primos en C++ en: 11 Agosto 2014, 14:49 pm
A mi me funciona perfecto el detector. Ahora mismo va por el millardo, y casi una GB de txt xD
Estoy planeando pasar de ascii a binario en archivo.
3093  Programación / Programación C/C++ / Re: [Aporte] Detector de números primos en C++ en: 11 Agosto 2014, 13:32 pm
Y aprobecho el mismo hilo para colgar este factorizador de números:

Código
  1. #include <iostream>
  2. #include <cmath>
  3. #include <limits.h>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. int main () {
  9.    while(true){
  10.        unsigned long long int fin=0, i=2, hh=0;
  11.        bool dos = true;
  12.        cout << "Pon el numero a factorizar: ";
  13.        cin >> hh;
  14.        while(hh<2 || hh>ULLONG_MAX-1){
  15.            cin.clear();
  16.            cout << "Debe ser un numero entre 2 y 18446744073709551615: ";
  17.            cin >> hh;
  18.            cout << endl;
  19.        }
  20.        cout << endl << "Numero a factorizar: " << hh << endl << 1 << " ";
  21.        uint64_t sq = sqrt(hh);
  22.        for(;i<=sq;){
  23.            if(hh%i==0)
  24.                if(hh==i){
  25.                    break;
  26.                }else{
  27.                    hh=hh/i;
  28.                    sq = sqrt(hh);
  29.                    cout << i << " ";
  30.                }
  31.            else
  32.                if(dos){
  33.                    dos=false;
  34.                    ++i;
  35.                }else
  36.                    i+=2;
  37.        }
  38.        cout << hh << endl << "Acabado." << endl << endl << endl;
  39.    }
  40. }
3094  Programación / Programación C/C++ / Re: Devolver el menor de un array en: 10 Agosto 2014, 14:16 pm
Solo una razón puede haber para que se quede en un bucle infinito: Ese while.

"Array[i+1]!=' '"
Array es un arreglo de enteros. ' ' es un espacio, que en ascii es 32. Estás diciendo que haga ese while hasta que Array[i+i]!=32.

Anteriormente, pusiste que num[nu] = 32. Yo no elegiría ese número, ya que a lo mejor se lo introduces por teclado tú.

Yo me replantearía esa función minimo(). Con un bucle for, llega.
3095  Programación / Programación C/C++ / [Aporte] Detector de números primos en C++ en: 10 Agosto 2014, 13:50 pm
Holas :D

Aquí dejo un código, más que nada curioso, que va guardando números primos en un archivo.

Información:
  • Tras cerrar el programa, retoma el último primo que generó
  • Funcionalidad para medir el tiempo que tarda (véase que con números altos empieza a tardar mucho más)
  • Se usa sólo la librería estándar

Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <ctime>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. inline bool primo(uint64_t n){
  9.    if(n%2==0) return false;
  10.    uint64_t i=3;
  11.    uint64_t sq = sqrt(n);
  12.    for (;n%i!=0; i+=2){
  13.        if(i>sq){
  14.            i=n;
  15.            break;
  16.        }
  17.    }
  18.    return i==n;
  19. }
  20.  
  21. int main () {
  22.    while(true){
  23.        uint64_t u=2, g=0, h=0;
  24.        string t;
  25.        cout << "Numero de primos a conseguir (0 para ver ultimo primo): ";
  26.        getline(cin,t);
  27.        g = strtoull(t.c_str(),NULL,0);
  28.        ifstream leer("primos.txt", ios::ate);
  29.        char n='0';
  30.        if(leer){
  31.            while(n!='\n'){
  32.                leer.unget();
  33.                n = leer.get();
  34.                leer.unget();
  35.            }
  36.            leer.get();
  37.            leer >> u;
  38.        }
  39.        leer.close();
  40.        if(g==0){
  41.            cout << "Ultimo primo conseguido: " << u << endl << endl;
  42.            continue;
  43.        }
  44.        ofstream escribir("primos.txt", ios::app);
  45.        if(u==2){
  46.            escribir << u--;
  47.        }
  48.        clock_t timer = clock();
  49.        while(h<g){
  50.            u+=2;
  51.            if(primo(u)){
  52.                escribir << endl << u;
  53.                ++h;
  54.            }
  55.        }
  56.        cout << endl << "Conseguidos " << h << " primos en " << ((clock()-timer)*1000)/CLOCKS_PER_SEC << " milisegundos." << endl << endl;
  57.    }
  58. }

El código creo yo que es fácil de entender. Se usa fstream para manejar el archivo de primos.

Quien le quiera mejorar el algoritmo para detectar los primos, está en su derecho, por supuesto.
Quien quiera guardar los primos en binario (8 bytes para uint64_t), puede hacer fácilmente la modificación.
Y hasta quien quiera, que le ponga una barra de carga jaja

Bueno, espero que a alguien le ayude.

Byes :3
3096  Programación / Programación C/C++ / Re: Problema simple con programa números primos en: 10 Agosto 2014, 13:04 pm
El problema de guardar un array de primos, es para números mayores a un millardo. Ahí podría empezar a consumir hasta un GB de memoria.
3097  Programación / Scripting / Re: en: 10 Agosto 2014, 12:29 pm
Ya que no sabes Python, a lo mejor te interesa hacer eso en un lenguaje que sí sepas, y luego cuando aprendas Python, traducirlo :o
3098  Programación / Programación C/C++ / Re: Rompecabezas numerico en: 9 Agosto 2014, 23:44 pm
El break sale de bucles for, while, y sentencias switch.
El return, retorna al función. Es decir, sale de la función, y retorna el valor que sea (salvo que sea void)
3099  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 9 Agosto 2014, 00:41 am
Así por probar, restale 2 al lenght, a ver si va a ser que el lenght se pone erróneamente más grande, y por eso el servidor se queda en espera.
3100  Programación / Programación C/C++ / Re: Ayuda envío archivo a web con C vía http en: 9 Agosto 2014, 00:16 am
Me refiero a que envíes una petición GET sencilla y que el php pues haga un log. Asegurarte de que se envían datos.
Páginas: 1 ... 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 [310] 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 ... 401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines