2つの与えられた数の間のすべての素数を見つけて素数を合計しようとしています。2つの数値の間の素数を見つける
素数検出を正しく行うループがあります。
しかし、何らかの理由で私はすべての素数を合計する方法を知らない。
int a,b,i,j,sum=0;
do
{ cout << "Enter a number: ";
cin >> a;
if (a < 4 || a > 1000000)
{ cout << "Input must be between 4 and 1000000 inclusive." << endl;
}
}while (a < 4 || a > 1000000);
do
{ cout << "Enter a second number: ";
cin >> b;
if (b < 4 || b > 1000000)
{ cout << "Input must be between 4 and 1000000 inclusive." << endl;
}
}while (b < 4 || b > 1000000);
if (a > b)
{ int hold;
hold = b;
b = a;
a = hold;
}
cout << "The prime numbers between " << a << " and " << b << " inclusive are: " << endl;
//int sum;
for (i = a; i <= b; i++)
{
for (j = 2; j <= i; j++) // Changed the < to <=, and got rid of semicolon
{
if (!(i%j)&&(i!=j)) break;
if (j==i)
{
cout << i << endl;
sum += i;
cout << sum ;
}
}
}
変数sum
は私にゴミの結果を与えます。
あなたの書式設定を修正し、分かりやすい変数名を使用してください、ありがとうございました... – ScarletAmaranth
これは( 'sum')をゼロに初期化しましたか?範囲は何ですか? 'sum'の型は何ですか?範囲によっては、オーバーフローが発生する可能性もあります。 – amit
私はそれを実際に作ったのです int sum = 0; – Mahmoud