当前位置: 首页 > news >正文

网站建设系统开发需要多少钱网站推广策略

网站建设系统开发需要多少钱,网站推广策略,dede 电商网站模板,品牌商城网站建设题目 AcWing 868. 筛质数 题解 方法一:朴素筛法 及其优化:埃氏筛 从2~n枚举 i,再从小到大枚举所有已知的质数 primes[j],筛掉合数 i*primes[j],遇到新的质数就入队 枚举所有小于n的数i,将i的所有倍数筛掉。 筛完后剩下的数就是质数。 朴素做法 void ge…

题目

AcWing 868. 筛质数


题解

方法一:朴素筛法 及其优化:埃氏筛

从2~n枚举 i,再从小到大枚举所有已知的质数 primes[j],筛掉合数 i*primes[j],遇到新的质数就入队==
枚举所有小于n的数i,将i的所有倍数筛掉
筛完后剩下的数就是质数

朴素做法
void get_primes(int n ){for(int i = 2; i <= n; i ++){if(!st[i])primes[cnt ++] = i;//如果是质数,入队for(int j = i + i; j <= n; j +=i)st[j] = 1;//删掉它的所有倍数}
}
时间分析:n/2 + n/3 +....+n/n = n log n(大概)
  1. 朴素做法的优化:埃氏筛法。(此算法由一个埃及人发明,所以叫 埃氏筛法)
    原理:当i不是质数时,没必要筛掉它的倍数,因为它的吧倍数将会是其它质数的倍数。
  2. 筛到N时,如果N没有被筛掉,就说在2~i-1中没有N的约数,所以N是质数。
    时间是O(n log n)约等于 O(n)(和O(n)一个级别)
    3.补充:质数定理:1~n当中有 n / logn 个质数
埃氏筛法
void get_primes(int n ){for(int i = 2; i <= n; i ++){if(!st[i]) {primes[cnt ++] = n;//没被筛掉,说明是质数for(int j = i + i; j <= n; j += i)//干掉它的所有倍数st[j] = 1;}	}
}
时间是O(n log log n)O(n)一个级别

方法二:线性筛法求质数

原理 :n只会被n的最小质因子筛掉
操作
枚举i:(2~n)

  1. i % primes[j] == 0
    => primes[j]一定是i的最小质因子.
    => primes[j]一定是primes[j] * i的最小质因子.
  2. i % primes[j] != 0
    由于是从小到大枚举的质数,若此时还没枚举到i的任何一个质因子。
    说明primes[j]一定小于i的最小质因子。
    那么 primes[j] 也一定是primes[j] * i的最小质因子。
    这个操作可以保证枚举到i时,所有小于等于i的合数都一定会被筛掉。
    证明:对于任意一个合数x,假设primes[j]是x的最小质因数,i一定会在x之前枚举到x/primes[j],这时x就会被筛掉。
    举例
    比如n=12时,x的最小质因数primes[j] = 2
    那么i一定会在12之前枚举到n/primes[j] = 6,此时就会把2*6 = 12 = n筛掉。
    时间:数据范围在 107以上的时候,线性筛法比埃氏筛法快一倍。
void get_primes(int n ){for(int i = 2; i <= n; i ++){//没被筛掉说明是质数,将这个新的质数加入primes里if(!st[i]) primes[cnt ++] = i;//从小到大枚举所有已知的质数 primes[j]for(int j = 0; primes[j] <= n / i; j ++){	//当质数大于n / i的时候break;//等价于 primes[j] * i <= n;也就是筛掉所有小于n的合数就可以了//筛掉合数 i*primes[j]st[primes[j] * i] = 1;	//当这句话发生的时候,primes[j]一定是i的最小质因子//那么用i的最小质因子筛掉i的目的已经达成了,所以跳出循环.if(i % primes[j] == 0) break;}}
}

代码

#include<bits/stdc++.h>
using namespace std;const int N = 1000010;int primes[N], cnt;
bool st[N];void get_primes(int n ){for(int i = 2; i <= n; i ++){if(!st[i]) primes[cnt ++] = i;for(int j = 0; primes[j] <= n / i; j ++){st[primes[j] * i] = 1;if(i % primes[j] == 0) break;}}
}int main(){int n;cin >> n;get_primes(n);cout << cnt << endl;return 0;
}
http://www.wooajung.com/news/26175.html

相关文章:

  • 影视广告片拍摄厂家seo优化在哪里学
  • seo织梦网站建设步骤深圳seo网站推广方案
  • seo优化与推广招聘精准的搜索引擎优化
  • 做a免费视频在线观看网站好的营销网站
  • 做盗版网站引流app代理推广合作
  • 张家界官方网站广告sem是什么意思
  • 个人工作室网站怎么做百度统计平台
  • 设计模板主题为气流个人网站seo
  • 网站建设能用手机制作吗重庆网站建设维护
  • 中国煤炭建设协网站网站建设哪个公司好
  • 图书馆网站建设公司东莞网站设计
  • seo如何优化网站傻瓜式自助建站系统
  • 那个网站可以做攻略如何建立自己的网站
  • 怎样搭建一个个人网站网上全网推广
  • 网站建设原则五大原则百度信息
  • 搜索引擎优化课程网站seo公司
  • 县市区没有建设信用网站和平台seo 工具
  • 大连网站开发培训班营销软件培训
  • vs做网站链接sql2023年的新闻时事热点论文
  • 如何选择网站定制公司中央刚刚宣布大消息
  • 从做网站可以用现在的名称吗关键词排名快照优化
  • 国际国内时事网站seo关键词设置
  • 海外人才招聘网站策划方案模板
  • 承德网站建设制作潍坊网站收录
  • 制作网站哪家好宣传推广策略
  • 网页设计和网站开发百度快速收录方法
  • wordpress选择文章模板西安百度快照优化
  • 南宁微网站制作网络营销服务商有哪些
  • ip提取网站源码带后台巢湖seo推广
  • 网站的ns记录宁波核心关键词seo收费