ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Criba de Erastotenes


Enviado por   •  14 de Febrero de 2019  •  Práctica o problema  •  630 Palabras (3 Páginas)  •  181 Visitas

Página 1 de 3

#include

#include

#include

using namespace std;

typedef long long i64;

vector criba;

vector Criba(i64 n) {

        int raiz = sqrt(n);

        vector criba(n + 1);

        for (int i = 4; i <= n; i += 2)

                criba[i] = 2;

        for (int i = 3; i <= raiz; i += 2)

                if (!criba[i])

                        for (int j = i * i; j <= n; j += i){

                                if (!criba[j]) criba[j] = i;}

        return criba;

}

vector factorizacion(i64 n){

        vector factores;

        i64 i=n;

        while(1){

                if(criba[i] == i ){

                        factores.push_back(i);

                        break;

                }

                

                factores.push_back(criba[i]);

                i = (i)/(criba[i]);

                //cout<<"i:"<

        }

        return factores;

}

int main(){

        criba = Criba(150000);

        vector primos;

        

        for( int i = 0; i < 1000; i++ ){

                if( criba[i] == 0 ){

                 primos.push_back( i );

                 criba[i]=i;}

        }

        //for( int i = 2; i < primos.size(); i++ )

        //        cout << primos[i] << endl;

                

        vector fact = factorizacion(150000);

                for( int i = 0; i < fact.size() ; i++ ){

                cout<

        }cout<<"\n";

                

        return 0;

}

...

Descargar como (para miembros actualizados) txt (1 Kb) pdf (27 Kb) docx (7 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com