我需要找到两个数字之间素数的总和,比如 x1 和 x2,但我无法检测出什么问题? 例如,如果我输入 3 和 9,我会得到 15,但我得到 133!
#include <iostream>
using namespace std;
int prime(int n1, int n2)
{
int count =0;
bool prime = true;
for (n1; n1 < n2; n1++)
{
for (int i = 2; i < n1; i++)
{
if (n1 % i == 0) {
prime = false;
continue;
}
else
count++;
}
}
return count;
}
int main()
{
int n1, n2;
cout << " Enter values for n1 and n2 (n1 must be smaller than n2): ";
cin >> n1>>n2;
cout << " Sum of prime numbers from " << n1 << " and till " << n2 << " inclusively : " << prime(n1, n2) << endl;
system("pause");
return 0;
}
最佳答案
您的 prime 函数不合适。这应该是这样的。
int prime(int n1, int n2) {
int sum = 0;
for (n1; n1 < n2; n1++) {
bool prime = true;
for (int i = 2; i < n1; i++) {
if (n1 % i == 0) {
prime = false;
break;
}
}
if( prime ) { // current n1 is prime
sum = sum + n1;
}
}
return sum;
}
如果您的 n1 是质数,则您没有添加任何东西。
关于c++ - 求两个 x1,x2 之间的质数总数,找不到错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53208342/