need improve204. Count Primes
2016-03-09 20:18
225 查看
int countPrimes(int n) { if(--n < 2) return 0; int m = (n + 1)/2, count = m, k, u = (sqrt(n) - 1)/2; bool notPrime[m] = {0}; for(int i = 1; i <= u;i++) if(!notPrime[i]) for(k = (i+ 1)*2*i; k < m;k += i*2 + 1) if (!notPrime[k]) { notPrime[k] = true; count--; } return count; } class Solution { public: int countPrimes(int n) { int *d=new int[n+1]; memset(d,0,(n+1)*sizeof(int)); int sum=0; for(int i=2;i<n;i++) { if(d[i]==0) { sum++; int index=i; while(index<n) { d[index]=1; index+=i; } } } return sum; } }; class Solution { public: int countPrimes(int n) { if(n<3) return 0; int *d=new int[n+1]; memset(d,0,(n+1)*sizeof(int)); int sum=1; for(int i=3;i<n;i+=2) { if(d[i]==0) { sum++; int index=i; while(index<n) { d[index]=1; index+=i; } } } return sum; } };
相关文章推荐
- Java网络编程——InetAddress
- AngularJS+Node的RESTful之基本实现
- 24点游戏&&速算24点(dfs)
- 常用网络管理操作
- [C]LeetCode:Maximum Depth of Binary Tree
- C++虚继承中的对象内存布局
- POJ 2407-Relatives-欧拉函数
- 228. Summary Ranges
- poj 2142 The Balance(扩展欧几里德算法)
- 56-题目1087:约数的个数
- 【dotnet跨平台】"dotnet restore"和"dotnet run"都做了些什么?
- 命令行解决mysql中文乱码
- 竖式问题
- Okhttp的简单介绍和使用(一)
- 华为oj 求二叉树的深度和宽度
- could improve 125. Valid Palindrome
- Andrroid 面试问题问答
- ALGO-124 数字三角形 动态规划
- Linux上安装Oracle11g
- C语言-switch语句