204. 计数质数
2020-02-09
1.題目描述
輸出小于非負整數n的所有質數2.解答
最容易想到的一種方法,直接進行判斷即可,超時: #include <iostream> using namespace std;class Solution { public:int countPrimes(int n) {int i,j,cnt=0;for (i=2;i<n;i++){for (j=2;j<i;j++){if (i%j==0) break;}if (j>=i) cnt++; }return cnt;} };int main(){Solution s;cout<<s.countPrimes(10)<<endl;return 0; } 考慮用素數篩的方法,注意在這里是如何進行內存分配的即可。3.代碼
#include <iostream> #include <cstring> using namespace std;class Solution { public:int countPrimes(int n) {bool *f = new bool[n];memset(f,0,sizeof(bool)*n);for (int i=2;i*i<n;i++){if (!f[i]){for (int j=i*i;j<n;j+=i){f[j]=true;}} }int cnt=0;for (int i=2;i<n;i++){if (!f[i]) cnt++;}delete[] f;return cnt;} };int main(){Solution s;cout<<s.countPrimes(499979)<<endl;return 0; }總結
- 上一篇: LeetCode 680 验证回文字符串
- 下一篇: Spring中Bean的配置方式之通过全