ユーザー入力整数をカバーする素数のリストを作成し、そのリストを直線的に検索し、入力整数がそのリストにある場合は true を返す bool Isprime 関数を作成しようとしています。ただし、入力整数をカバーするリストを作成する方法を理解するのに問題があります (つまり、ユーザーが 4 を入力した場合、リストには 2、3、および 5 が含まれている必要があります)。
これが私がこれまでに持っているコードです(完全に間違っていることはわかっています。調査を試みましたが、これを行う方法がわかりません。
bool Isprime(int N){
int i,tprime=3;
list<int>prime;
prime.push_back(2);
list<int>::iterator it;
for (it=prime.begin();it!=prime.end();it++){
if (*it<N){
while (i<sqrt(tprime)){
if(N%i!=0){
if(i<sqrt(tprime))
i++;
else prime.push_back(tprime);
}
tprime++;
}
}
}
for (it=prime.begin();it!=prime.end();it++){
if (*it==N)
return true;
}
return false;
}
これを機能させる方法についてのヒントを教えてもらえますか?線形検索を理解できます。