Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

(´∀`) Prime numbers (,,゚Д゚)

Name: Anonymous 2007-04-15 11:11 ID:00E9fssW

|code]isPrime x = (filter (0 ==) (map (mod x) [2..x-1])) == [][/code]

Name: Anonymous 2007-04-15 16:29 ID:pr2p8hC+

>>15
Very inefficient way to do it in most cases.

#include <math.h>

const size_t NumPrimes = 1000000;

int main(void)
{
    size_t i, j;
    __int64 cur, number;
    __int64 *primes = (__int64 *) 0;

    if (primes = new __int64[NumPrimes]) {
        for (i = 0; i < NumPrimes; i++) {
            primes[i] = 0;
        }

        for (primes[i = 0] = 2, number = 3; i < NumPrimes-1; number++) {
            __int64 max = (__int64) (ceil(sqrt((long double) number)));

            for (j = 0; cur = primes[j]; j++) {
                if (number % cur == 0) {
                    break;
                } else if (cur >= max) {
                    primes[++i] = number;
                    break;
                } else {
                    continue;
                }
            }
        }
       
        delete[] primes;
        primes = (__int64 *) 0;
    }

    return 0;
}

There you have many primes. You can increase NumPrimes to any number you like, but you 'might' need more RAM. :)

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List