これは、効率の悪い素数ジェネレーターと見なされますか。これはかなり効率的だと私には思えます。プログラムの実行を遅くするのはストリームの使用ですか?
これをSPOJに提出しようとしていますが、制限時間を超えていると表示されます...
#include <iostream>
#include <sstream>
using namespace std;
int main() {
int testCases, first, second, counter = 0;
bool isPrime = true;
stringstream out;
cin >> testCases;
for (int i = 0; i < testCases; i++) {
// get the next two numbers
cin >> first >> second;
if (first%2 == 0)
first++;
// find the prime numbers between the two given numbers
for (int j = first; j <= second; j+=2) {
// go through and check if j is prime
for (int k = 2; k < j; k++) {
if (j%k == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
out << j << "\n";
}
isPrime = true;
}
out << "\n";
}
cout << out.str();
return 0;
}
編集: プログラムは、入力で指定された数値の間に素数を生成することになっています。(詳細については、ここを参照してください:プライム ジェネレーターの問題)
-トメク