-1

私は初心者です。組織化されていないことをお許しください。さて、私がしたことは、8 から 100 までのすべての素数で満たされた配列を作成することでした。ここでやりたいことは、101 から 200 までのすべての素数を見つける別の配列を作成することです。それでは、最初の部分をどのように行ったかを説明させてください。

//Prime1 は、8 から 100 までのすべての素数を格納する動的な整数配列です

int arrayCounter = 0; 
for(int primeTest = 8; primeTest<=100; primeTest++)
{
    if(primeTest%2!=0 && primeTest%3!=0 && primeTest%5!=0 && primeTest%7!=0)
    { 
        Prime1.add(primeTest); //adds the prime numbers to array
        arrayCounter = arrayCounter +1; 
    }
    else 
    { 
        arrayCounter = arrayCounter + 1; 
    } 
}

ここで主な問題に戻ります。「if(primeTest % "prime#" !=0)」と書くのではなく、Prime1 配列全体でモジュラスを使用して、すべての値がゼロに等しくないかどうかを確認できるようにしたいと考えています。詳しく説明しましょう。

for(int primeTest2 = 101; primeTest2 <= 200; primeTest2++)
{
    for(int arrayCounter2 = 0; arrayCounter2 < Prime1.size(); arrayCounter2++)
    {      
        if(primeTest2 % Prime1.get(arrayCounter2) != 0 )
        {
            Prime2.add(primeTest2);
        }
    }
}

//中かっこの欠落はご容赦ください

^^ここで、101 から始まる値を取得し、Prime1 配列の最初の値でモジュラスを計算します。ご存知のように、11 (配列内の最初の素数) は、素数ではない数でも true を示す可能性があるため、これは誤検出を引き起こす可能性があります。これが、配列内のすべての値で数値をテストして、他の素数で割り切れないことを確認できるようにする必要がある理由です (素数であることを意味します)。

4

2 に答える 2