我必须找到两个给定数字之间的所有质数(按升序排列,即从小到大),然后进行逻辑运算,以使我的程序从给定的最小数开始到给定的最大数,并为每个数字找到因数count是2,即1及其本身(这是质数的条件),因此将其打印为质数。但是我无法打印我想要的输出..无法跟踪原因(PS我是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
因为这始终是正确的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句