Algo Algo   C++   C#   Demo   JS   Py   SQL   Stat   TA

Numbers : Primes

Primes

// -----------------------------------------------------------------------------
// Primes                                                                     C#
// -----------------------------------------------------------------------------

static List<int> Primes(int limit)
{
    List<int> primes = new List<int>();
    for (int k = 2; k <= limit; k++) {
        bool prime = true;
        int rk = (int)Math.Sqrt(k);
        foreach (int p in primes) {
            if (rk < p) break;
            if (k % p == 0) {
                prime = false;
                break;
            }
        }
        if (prime) primes.Add(k);
    }
    return primes;
}

// -----------------------------------------------------------------------------

Prime Factors

// -----------------------------------------------------------------------------
// Prime Factors                                                              C#
// -----------------------------------------------------------------------------

static Dictionary<int, int> PrimeFactors(int n, List<int> primes)
{
    Dictionary<int, int> factors = new Dictionary<int, int>();
    int nr = (int)Math.Sqrt(n);
    foreach (int p in primes) {
        if (n == 1 || p > nr) break;
        if (n % p == 0) {
            factors[p] = 0;
            while (n % p == 0) {
                factors[p]++;
                n /= p;
            }
        }
    }
    if (n > 1) factors[n] = 1;
    return factors;
}

// -----------------------------------------------------------------------------
Algo Algo   C++   C#   Demo   JS   Py   SQL   Stat   TA