求两个数之间的素数问题

Problem in Finding Prime Numbers between Two numbers

我必须找到两个给定数字之间的所有素数(按升序排列,即小,大)我制定了逻辑,使我的程序从给定的最小数字开始直到给定的最大数字,并为每个数字找到因数在两者之间,如果因子计数是 2,即 1 和它本身(这是素数的条件),因此它被打印为素数。但是我无法打印我想要的输出..无法追踪原因(P.S 我是 19 岁的编程新手)

#include <iostream>
using namespace std;
int main(){
        int start,end;
        cin>>start,end;
        for(int i=start+1;i<end;++i){
                int count;
                for(int j=1;j<=i;++j){
                        if(i%j==0 || i/2==0)count++;
                }
                if(count==2) cout<<i<<endl;

        }

        return 0;
}

输入:1 10

预期输出:

2
3 
5 
7 
9

输出:(无)

您的程序有几个问题。

  1. cin>>start,end; 不会读入 2 个数字。你需要 cin >> start >> end;

  2. 您没有将 count 初始化为任何东西,因此您在执行 count++ 时调用了未定义的行为。你需要做 int count = 0;

此外,在检查 n 是否为素数时,您不需要检查是否可被 1n 整除,因为这始终为真。