初等数论程耀PPT讲稿.ppt
《初等数论程耀PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《初等数论程耀PPT讲稿.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、初等数论程耀第1页,共23页,编辑于2022年,星期五素数和合数素数和合数算术基本定理:任意正整数n可以写成n=2a1*3a2*5a3*,其中a1,a2,a3等为非负整数素数的判定:判定函数 筛法求素数 miller_rabin素性判定第2页,共23页,编辑于2022年,星期五素数的判定素数的判定bool Is_prime(int n)int t=(int)sqrt(n);for(int i=2;i=t;i+)if(n%i=0)return false;return true;第3页,共23页,编辑于2022年,星期五筛法求素数筛法求素数思考:如果一个数是合数,那么它的素因子都比它小?这样说来
2、:如果我们的当前数是 a,那么所有 a的倍数(当然是2倍以上啦)都不会是素数,可以这样看吧?于是,我们可以一种新的素数判定方法。第4页,共23页,编辑于2022年,星期五筛法求素数筛法求素数方法:每次用一个素数,去筛掉所有它的倍数。举个例子:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2829 30筛去2的倍数,剩下3 5 7 9 11 13 15 17 19 21 23 25 27 29筛去3的倍数,剩下5 7 11 13 17 19 25 29 。注意:开头的数一定是素数?第5页,共23页,编辑
3、于2022年,星期五筛法求素数筛法求素数bool prime maxn;/时间复杂度O(n)?void init()memset(prime,0,sizeof(prime);for(int i=4;i maxn;i+=2)primei=1;for(int i=3;i maxn;i+=2)if(!prime i)for(int j=i*i;j maxn;j+=i)prime j=1;第6页,共23页,编辑于2022年,星期五miller_rabin素性判定素性判定miller_rabin是一种概率型的算法,不是确定型的。但是,只要运行次数足够多,一般出错的概率是非常小的,一般10次就好了!算法复
4、杂度是 O(logn)3)算法的正确性是基于费马小定理。费马小定理:对于素数p和任意整数a,有a(p-1)=1(mod p)。反过来,满足a(p-1)=1(mod p),p也几乎一定是素数。第7页,共23页,编辑于2022年,星期五miller_rabin算法分析算法分析bool miller_rabin(LL n)if(n2)return false;if(n=2)return true;if(!(n&1)return false;for(int i=1;i=1;t+;/这个地方是通过一个推论来优化的,x2=1(mod n),当那个n是合数的时候,就会出现非平凡平方根!LL x=quick_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 初等 数论 PPT 讲稿
限制150内