我正在尝试学习如何编码,但在尝试了解我的代码有什么问题时我很挣扎。我正在使用 C++ 中的 Visual Studio 2013 进行编程。
问题:编写一个程序,从用户那里读取一个数字 N,然后找到前 N 个质数。质数是只有两个约数的数,一个和它本身。
我的代码没有打印出一系列素数,而是重复了一些素数。
#include <iostream>
using namespace std;
// this program will calculate the first N primes
int main(){
int N;
cin >> N;
for (int i = 2; i < N; i++){
for (int j = 2; j < N; j++){
if (i%j == 0){
break;
}
else
cout << i << " " << "is a prime number\n";
}
}
}
最佳答案
只要 j
不整除 i
,您就会打印出 i
是质数。您应该等到检查完所有 可能的除数。我不会给你应该做什么的答案,但它应该涉及修改你的代码的这一部分:
if (i%j == 0){
break;
}
else
cout << i << " " << "is a prime number\n";
}
关于c++ - for循环错误计算素数C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189806/