如何在每次调用它时调用下一个素数的函数?
这就是我所拥有的:
#include <iostream>
#include <cmath>
void prime();
using namespace std;
int main()
{
void prime();
}
bool isPrime(int integer)
{
int x;
int br = 0;
for (x = 1; x < integer; x++) {
if (integer % x == 0) {
br++;
}
}
if (br == 1) {
cout << " The number " << integer << " is prime " << endl;
}
else if (br > 1) {
cout << " The number " << integer << " is not prime " << endl;
}
}
void prime(){
for (int x = 2;x<1000;x++){
isPrime(x);
}
}
运行时没有显示任何内容。 编辑:这里我添加了主要功能......
答案 0 :(得分:6)
int main() { void prime(); }
void prime();
是一个函数声明。它没有效果;该函数未被调用。您必须致电该功能:
int main()
{
prime();
}
然后还有另一个大问题。您的isPrime
函数不会返回任何内容。向其添加return
语句:
return br == 1;
如果不打算让函数返回任何内容(并且您的代码当前不使用返回的值,那么这可能确实是您的意图),那么将其设为{{1功能。
答案 1 :(得分:0)
isPrime是布尔函数,期望返回true或false,代码中没有返回。如果您只是想“控制”控制台上的数字,请将其设为无效。
答案 2 :(得分:-1)
您的代码的主要问题是您没有从isPrime
函数返回任何内容(应该返回一个布尔值)。
为此,您可以将代码重写为:
bool is_prime(int integer) {
if (integer < 2) return true;
auto range = boost::irange(2, integer);
auto pred = [integer](auto i) { return integer % i == 0; };
return find_if(range, pred) == std::end(range);
}
第二,你的主要:
int main()
{
void prime();
}
实际上只是声明函数prime
。为了打电话,你可以写:
void prime();
int main() {
prime();
}