数を素数に因数分解するために多数を処理する必要があるこのプログラムがあります.RSA因数分解の課題と同じです。
このリストは、素数を含む txt ファイルで取得しました。これは、そのリストを作成するために使用するコードです。
int export_list (int lim = 50)
{
int last_in_txt = 0;
{
ifstream infile ("Primes.txt");
int k;
while(infile >> k)
{ last_in_txt = k; }
}
// Now last_in_txt is assigned properly, and Primes.txt is closed
cout << "\nLast number in \"Primes.txt\": " << last_in_txt << endl << endl;
cout << "Press <Enter> to start appending primes... ";
cin.get();
cout << "\nAppend started:\n";
last_in_txt++;
ofstream file ("Primes.txt" , ios::app);
int x, counter;
if (file.is_open()) // if it opens correctly
{
for (x = last_in_txt , counter = 0 ; counter < lim ; x++ , counter++)
{
if (check_prime (x)) // returns 1 when x is prime, returns 0 when not
{
cout << "Appending " << x << "\t\t" << "Estimated time remaining: " << (lim - counter) / 1000 <<endl;
file << x << " ";
}
}
cout << "Done!" << endl << endl << pressenter;
cin.get();
}
else
{
cout << "Unable to open file" << endl << pressenter;
cin.get();
}
return(0);
}
問題は、このtxtファイルに32ビットを超える数値が含まれているという点に到達すると、それらを処理しません...そして、last_in_txt
変数は常に32ビットを超えないtxtファイルの最後の数値を格納します...