c++ - 求两个 x1,x2 之间的质数总数,找不到错误?

标签 c++ function loops

我需要找到两个数字之间素数的总和,比如 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/

相关文章:

c++ - 传递函数

function - 关于一个函数如何在 clojurescript 中生成另一个函数的文档?

r - 将自定义函数应用于 DF 列表,将另一个列表作为输入 - R

loops - 为什么 "break"结束 "loop"时不需要分号?

javascript - 用 Javascript 创建一个猜数游戏 - 需要循环帮助

c++ - 当 img(roi) 未返回正确值时如何正确提取 ROI

c++ - 自定义类型作为 QT Designer 中的属性

c++ - 如何使用 Qt 程序中的默认应用程序打开具有相对路径的 pdf

c++ - gcc -fprofile-arcs : how to output a file on custom RTOS

c++ - 在C++中将数组中的所有数字相加