Saturday, February 28, 2015

Prime Factorize

This snippet puts all primes uptil s in pr and if you want to know the prime factors , it's in pfactors[i]

#define s 100009

vector<int> pfactor[s + 1];
vector<bool> prime(s + 1, true);
vector<int> pr;

void seive()
{
    prime[0] = prime[1] = false;
    for(int i = 2; i <= s; i++)
    {
        if(prime[i])
        {
            pfactor[i].pb(i);
            pr.pb(i);
            for(int j = 2 * i; j <= s; j += i)
            {
                int jj = j;
                while(jj % i == 0)
                {
                    pfactor[j].pb(i);
                    jj /= i;
                }
                prime[j] = false;
            }
        }
    }
}

No comments:

Post a Comment