私は Java/php のバックグラウンドを持っており、現在 C++ を学んでいます。C++ でエラトステネスのふるいを再作成し、5000 未満のすべての素数を出力しようとしました。
私はhttp://www.compileonline.com/compile_cpp_online.phpでこのコードを書いてコンパイルしています
コードとエラー メッセージを参照してください。
コード:
#include <iostream>
using namespace std;
bool sieve[](int max)
{
bool primes[max];
primes[0] = false;
primes[1] = false;
for(int a = 2; a < max; a++)
{
primes[a] = true;
}
for(int i = 2; i < max; i++)
{
if(primes[i])
{
for(int j = 2*i; j < max; j+=i)
{
bool primes[j] = false;
}
}
}
return primes;
}
int main()
{
bool[] primes = sieve(5000);
for(int i = 2; i < primes.size; i++)
{
if(primes[i])
{
cout << i << endl;
}
}
}
エラーメッセージ:
$g++ main.cpp -o demo -lm -pthread -lgmpxx -lgmp -lreadline 2>&1
main.cpp:5:5: error: expected unqualified-id before '[' token
bool[] sieve(int max)
^