求两个数之间的素数问题
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
输出:(无)
您的程序有几个问题。
cin>>start,end;
不会读入 2 个数字。你需要 cin >> start >> end;
您没有将 count
初始化为任何东西,因此您在执行 count++
时调用了未定义的行为。你需要做 int count = 0;
此外,在检查 n
是否为素数时,您不需要检查是否可被 1
或 n
整除,因为这始终为真。
我必须找到两个给定数字之间的所有素数(按升序排列,即小,大)我制定了逻辑,使我的程序从给定的最小数字开始直到给定的最大数字,并为每个数字找到因数在两者之间,如果因子计数是 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
输出:(无)
您的程序有几个问题。
cin>>start,end;
不会读入 2 个数字。你需要cin >> start >> end;
您没有将
count
初始化为任何东西,因此您在执行count++
时调用了未定义的行为。你需要做int count = 0;
此外,在检查 n
是否为素数时,您不需要检查是否可被 1
或 n
整除,因为这始终为真。