C++求素数
来源:互联网 发布:app效果图制作软件 编辑:程序博客网 时间:2024/05/22 17:48
#include <iostream>#include <string>#include <stdio.h>#include <time.h>using namespace std;//统计小于n的素数个数int prime(int n) { //记录某数是否访问 bool *v = new bool[n]; //保存素数 int *p = new int[n]; int i, j, res = 2; if (n < 3) return 0; if (n == 3) return 1; if (n == 4 || n == 5) return 2; for (i = 0; i < n; i++) v[i] = false; for (i = 1;; i++) { //只需判断6n-1和6n+1 if (6 * i - 1 >= n) break; if (v[6 * i - 1] == false) p[res++] = 6 * i - 1; for (j = 2; j < res && (6 * i - 1) * p[j] < n; j++) { v[(6 * i - 1) * p[j]] = true; if ((6 * i - 1) % p[j] == 0) break; } if (6 * i + 1 >= n) break; if (v[6 * i + 1] == false) p[res++] = 6 * i + 1; for (j = 2; j < res && (6 * i + 1) * p[j] < n; j++) { v[(6 * i + 1) * p[j]] = true; if ((6 * i + 1) % p[j] == 0) break; } } delete []v; delete []p; return res;}int main() { //计算运行时间 clock_t s, e; s = clock(); int n = prime(9973); e = clock(); cout << n << " " << 1.0 * (e - s) / CLOCKS_PER_SEC << endl; return 0;}
0 0
- 求素数 c/c++
- C语言求素数。
- C求素数 厄拉多塞筛
- C算法-求素数
- c语言求素数
- C语言求素数
- C语言:求素数
- 【C语言】求素数
- c语言求素数
- C语言简单求素数
- 快速求素数 C语言
- C语言求回文素数
- c 筛选法求素数【修改】
- demo4.c(求100以内的素数)
- C语言求素数的不同解法
- c之筛选法求素数
- ②C语言,函数调用求素数
- 我的c学习:求素数
- 大数乘法
- svn配置错误,利用方法
- Error: Skin for * cannot be found. -isolate-styles=false
- 解决FireFox下网页没有声音
- 美化上传input file
- C++求素数
- 3Sum Closest
- linux进程通信机制之无名管道&有名管道
- Pros and Cons of AngularJS (转)
- 安装lua
- linux下查找某个文件的位置
- 黑马程序员---Objective-C NSDictionary
- 深拷贝和浅拷贝的区别
- Ubantu 下 用shift切换输入法