#include #include #include #include typedef std::vector 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; }