このプログラムは、nthPrime(n)
とisPrime(candidatePrime, Vector<int >&primes)
の2つの関数を使用してn番目のプライムを返します。ベクトルにプライムされているチェックされた数値を格納し、次に連続する候補をベクトルから要素で除算します。しかし、私のプログラムは停止せず、出力も表示されません。プログラムは停止せず、実行を継続します
コードは次のとおりです。
このプログラムは、nthPrime(n)
とisPrime(candidatePrime, Vector<int >&primes)
の2つの関数を使用してn番目のプライムを返します。ベクトルにプライムされているチェックされた数値を格納し、次に連続する候補をベクトルから要素で除算します。しかし、私のプログラムは停止せず、出力も表示されません。プログラムは停止せず、実行を継続します
コードは次のとおりです。
あなたはforループの外の容器(ライン94)に追加の行を削除する必要があります。
大丈夫ですが、私はそれだけではなく、すでにソートされた素数をどこに保存しますか? –
@bo perssonも同様に言及している問題の原因の1つは です。コンテナ内の他のすべての値と比較する前に、候補をコンテナに追加するということです。したがって、size()はほとんど毎回増加し、 "i"は決してそれに到達しないかもしれません。
@farhatが問題の解決策を提供していますが、ファーハットの答えの代わりに、別のベクトルを使用して項目を追加し、現状のままにすることができます。
あなたの[mcve]を画像ではなく質問のテキストとして投稿してください。 – NathanOliver
1つの問題は、コンテナ内の*すべての*他の値に対してチェックする前に、コンテナに候補を追加することです。そうすれば 'size()'はほとんど毎回増加し、 'i'は決してそれに到達しないかもしれません。 –
候補をすべての素数に対してチェックする方法を教えてください。数字のいずれかで除算が可能な場合、候補はプライムではなく、決定子は偽になります。私は何をしなければならないのですか? 候補が任意の数で割り切れない場合など、&&条件をいくつか追加して、deciderをtrueに設定しますか? –