All pastes #1791770 Raw Edit

Miscellany

public text v1 · immutable
#1791770 ·published 2010-02-09 20:15 UTC
rendered paste body
#include <iostream>
#include <cmath>
#include <vector>
#include <fstream>

typedef std::vector<long> infint;

#define MAX_PRIME 1000000000

int main()
{
    const long higheststore = sqrt(MAX_PRIME) + 100;

    std::ifstream readfile("primes.txt");
    infint primes;
    long number = 1;

    while (readfile.good())
    {
        readfile >> number;
        if (number <= higheststore)  // Don't store primes greater then half the max.
            primes.push_back(number);         // Added the 100 to ensure no errors
    }
    readfile.close();

    std::ofstream writefile("primes.txt", std::ios::app);

    while (true)
    {
        number++;

        if (number > MAX_PRIME)
            break;

        bool primetest = true;
        infint::iterator it = primes.begin();
        while (it != primes.end())
        {
            if (number % *it == 0)
            {
                primetest = false;
                break;
            }
            if (number / 2 > *it)
                break;
            it++;
        }

        if (primetest)
        {
            writefile << number << std::endl;
            if (number <= higheststore)
                primes.push_back(number);
        }

        if (number % 1000000 == 0)
            std::cout << number / 1000000 << " Million Checked" << std::endl;
    }

    std::cout << "Done :)\n";

    return 0;
}