私は範囲内のすべての素数を見つける方法をC ++で理解しようとしています(今のところ100を使用しています)
私はパフォーマンスについて心配していません.C ++で始めて、私の本からこのプログラムの演習を理解しようとしています. 以下で使用しようとしているプログラムがありますが、常に false を返します。何か案は?googles/bing のヘルプとスタック オーバーフローのほぼすべてを読みました。数値の入力で動作するコードを書くことができます。すべての数字をループするだけではありません
私が間違っていることについてのアイデアはありますか?
#include <iostream>
using namespace std;
bool isPrime(long n);
int main()
{
int i;
//some vars
char emptyVar;
//first loop (to increment the number)
for (i = 0; i <= 100; i++)
{
//checking all numbers below 100
if (isPrime(i) == true)
{
//is true
cout << i << ", ";
}
else if (isPrime(i) == false)
{
//is false
cout <<"false , ";
}
}
cin >> emptyVar;
}
bool isPrime(long n)
{
long i =0;
//checks to see if the number is a prime
for (i = 2; i < n; i++) // sqrt is the highest possible factor
{
if ( n % i == 0) // when dividing numbers there is no remainder if the numbers are both factors
{
// is a factor and not prime
return false;
}
else if (n % i != 0 && i >= 100)
{
//is not a factor
return true;
}
}
}