#include <algorithm> #include <iostream> #include <cmath> #include <vector>using namespace std; int countPrimes(int n) { if (n <= 2) return 0; vector<int> arr(n, 0); for (int i = 2; i <= sqrt(n); ++i) { if (!arr[i]) for (int j = i * i; j <= n; j += i) { arr[j] = 1;} } cout << arr[2] << endl; int j = 0; for (int i = 2; i <= n; ++i) { if (!arr[i]) { arr[j++] = i; }} cout << "j" << j << endl; int l = 0, r = j - 1; while (l <= r) { int m = (l + r) >> 1; cout << m << endl; cout << "arr[m]" << arr[m] << "n - 1" << n - 1 << endl; if (arr[m] == n - 1) { l = r = m; return l + 1; } else if (arr[m] < n - 1) { l = m + 1; } else r = m - 1; cout << "l = " << l << "r= " << r << endl; cout << "m=" << m << endl; } cout << l << endl; return 0; }int main() { cout << countPrimes(6) << endl;return 0; }
在程序中加斷點(diǎn),發(fā)現(xiàn)運(yùn)行到return l + 1
處時(shí)報(bào)錯(cuò),報(bào)錯(cuò)信息如下
在VSCODE中還會(huì)彈出一個(gè)窗口,提示源 源未知 不可用
請(qǐng)問(wèn)問(wèn)題出在哪里了?謝謝了