C ++原理和练习-从输入值n中查找素数

时间:2018-07-14 10:33:24

标签: c++ principles

找到了Stroustrups初学者书Ch4Ex15的答案,问题是找到前n个素数:

#include "std_lib_facilities.h"

bool prime (vector<int> table, int number) {
    for (int i = 0; i < table.size(); ++i)
        if (number%table[i] == 0) return false;
    return true;
}

int main () {
    int count, next;
    cout << "Input the number of primes\n";
    cin >> count;
    vector<int> table;
    next = 2;
    while (table.size() < count) {
        if (prime(table,next)) table.push_back(next);
        ++next;
    }
    for (int n = 0; n < table.size(); ++n)
        cout << table[n] << " ";
    cout << endl;

    // keep_window_open();
    return 0;
}

我很难理解的两件事:

  1. 为什么在int main之外顶部会有一段代码,在int main之后执行?
  2. 这些语句如何工作(它们是否是双重条件?) bool prime (vector<int> table, int number)if (prime(table,next))

谢谢, 肖恩

1 个答案:

答案 0 :(得分:-1)

您要问的事情是C和C ++语言的基础。通读任何好的C ++教科书的前2-3章,都会为您解答这些问题。

示例代码定义 2个功能:primemain

  1. main之外的代码是prime函数的定义。它是在main函数中定义的(在此处创建)供以后调用。
  2. 这是两件事。您提到的第一件事是函数prime的定义,第二件事是对该函数的调用