注意n的最小因数不超过根号(n-1),还有搜查范围是(2,n-1】,如果n小于等于2,返回0,否则个数基础是1(即2),具体代码如下所示:
class Solution { public: int countPrimes(int n) { if (n <= 2) { return 0; } int sum = 1; for (int i = n-1; i > 2; i--) { bool found_target = false; for (int j = 2; j * j <= i; j++) { if (i % j == 0) { found_target = true; break; } } if (found_target == false) { sum++; } } return sum; } };