计算 -3
来源:互联网 发布:ipad专业画图软件 编辑:程序博客网 时间:2024/06/03 21:00
埃拉托色尼筛法求素数:
这是最简单朴素的素数筛法了,根据wikipedia,时间复杂度为 O(n \log\log n),空间复杂度为O(n)。
算法思想:先假定所有的数都是素数,然后从最小的素数2出发,把素数的所有倍数筛出去。又因为一个数的质因数都是成对出现的,比如100 = 1*100 = 2*50 = …..= 10*10,所以筛素数时只用筛到 n的开平方就行了。
以下为C++的代码:
#include<iostream>#include<string>#include<vector>#include<algorithm>#include<cmath>using namespace std;inline void keep_window_open() { char ch; cin >> ch; }int main(){ vector<bool>prime;//定义一个布尔类型的向量 prime.push_back(false);//这点感觉有点别扭,虽然需要把前两个向量元素设为假,因为0和1都不是素数 prime.push_back(false); for (int i = 2; i < 100; i++)//这里的100可以换成n { prime.push_back(true); } for (int i = 2; i < sqrt(100); i++)//素数判断范围可以到开方即可 { if (prime[i]) { for (int j = i; j * i < 100; j++)//剔除所有成倍的元素 { prime[j*i] = false; } } } for (int i =0;i<100;i++) { if(prime[i]) cout << "The prime number is " << i << '\n'; } system("PAUSE");}
阅读全文
0 0
- 计算3
- 计算 -3
- p1042表达式计算3
- 表达式计算实验3
- 汇编语言 计算 2^3 .
- 3 MapReduce计算模型
- 计算几何练习3
- 3 π的计算
- 3、计算属性
- 计算
- 计算
- 计算
- 计算
- 计算
- 计算
- 计算
- 计算
- 计算
- 移动设备电池管理——各种电池技术的简介1
- 终于弄明白了的结构体与typedef的使用,还有结构体指针的使用(二层结构体指针)
- 深度学习参数初始化策略
- Python基础杂记编码解码
- Java基础入门笔记-整数+小数+字符串+打印
- 计算 -3
- HTML表格、表单,以及新表单属性
- JUnit -- 概念及其应用
- <1>Java的工作方式
- 编码 —— 差错检验
- 自我修养
- java并发基础(四)--- 取消与中断
- php快速排序的三种实现(吊打面试官)
- Python 线程池(threadpool)