【发布时间】:2013-01-29 02:45:18
【问题描述】:
我正在开发一个 C++ 程序,该程序确定并打印用户输入的 3 和整数“x”之间的质数。我假设我需要一个双嵌套循环,一个从 3 迭代到 x,另一个检查数字是否为素数。我认为它需要做一些事情,比如从 2 到 x-1?我只是真的不确定如何在语法方面做到这一点。谢谢你的帮助! :)
编辑: 这就是我所拥有的:
#include <iostream>
#include <cmath>
using std::cout;
using std::endl;
using std::cin;
int main(){
int x;
int i;
int j;
cout << "Please enter an integer 'x' greater than 3: " << endl;
cin >> x;
if (x <= 3){
cout << "Please enter new value 'x' greater than 3: " << endl;
cin >> x;
}
for(int i=3; i<=x; i++){
for(j=2; j<i; j++){
if(i%j == 0)
break;
else if(i == j+1);
cout << i << endl;
}
}
return 0;
}
当我输入 10 作为“x”时,我得到输出: 3 5 5 5 7 7 7 7 7 9
谁能告诉我如何解决这个问题?
【问题讨论】:
-
你应该看看 Erastothenes 的筛子。
-
我认为你走在正确的轨道上,但你的问题并不是很好。如果它问一个非常具体的问题,例如:C++ 中循环的语法是什么,或者我是否需要嵌套循环来计算从 1 到 N 的素数或其他什么,它会更合适。此外,已经在各个地方发布了许多示例,展示了如何做到这一点,很容易访问,因此您可能只想做一些研究,然后再询问您是否仍然感到困惑。
-
到目前为止您尝试过什么?您是否在这里搜索过与同一主题相关的其他问题?
-
修复代码的最小编辑:hpaste.org/81471。考虑在codereview.stackexchange.com 上发布此类问题。