重複としてフラグを立てる前に、これを読んでください:
他の人がどうするか、何が速いかなんて知りたくない、自分でやりたい。
問題:
計算された素数と実際の素数の間にはわずかな違いがあります (約 1%)。エラー箇所がわかりません...
例えば :
2 から 50 000 まで:
Wolfram|Alphaは 5 132 を返し、私のアルゴリズムは 5 182 を返します
2 から 500 000 まで:
Wolfram|Alphaは 41 537 を返し、私のアルゴリズムは 41 665 を返します
私は間違っていて、Wolfram | Alphaは正しいと思いますので、ここに私のコードがあります:
#include <QCoreApplication>
#include <QVector>
#include <QDebug>
QVector<int> tabPrime;
bool isPrime(int n)
{
bool boolIsPrime = true;
int i = 0;
while (boolIsPrime && tabPrime.at(i) * tabPrime.at(i) < n)
{
if (n % tabPrime.at(i) == 0)
boolIsPrime = false;
i++;
}
if(boolIsPrime)
tabPrime.append(n);
return boolIsPrime;
}
int main()
{
int numberWanted = 500000;
tabPrime.append(2);
tabPrime.append(3);
for(int i = 4; i < numberWanted; i++)
isPrime(i);
qDebug() << "There is" << tabPrime.count() << "primes numbers from 2 to" << numberWanted;
return 0;
}