摘要: 欧拉函数~~第一次写欧拉函数,以前只知道其定义,以为编码按其过程一步一步的实现应该就可以,结果发现不太一样。超时的想法:首先筛选素数,刚开始是筛选了N以内的所有素数,然后对于每个数,从小到大枚举素数,for(;;)//枚举素数if(n%prime[i]==0){ phj[n]=phj[n]-phj[n]/prime[i]; while(n%prime[i]==0){ n/=prime[i]; }}超时了之后,发现素数其实没必要枚举到N,只用枚举到sqrt(N)因为对于每一个数n,for()循环之后,如果n不为1,那n肯定是一个大于sqrt(N)的素数。但是这样之后还是超时了。。之后看了百科上面 阅读全文
posted @ 2012-09-20 16:20 奋斗青春 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 扩展Baby Step Giant StepBaby Step Giant Step: A^X=B(mod C); C为素数。如果C没有限制就变成扩展Baby Step Giant Step。参照大牛博客:http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4实在是太弱了,没用二分,写了一个hash竟然超时,最后还是copy了一个hash。View Code 1 # include<stdio.h> 2 # include<string.h> 3 # include<stdlib.h> 4 # 阅读全文
posted @ 2012-09-20 16:14 奋斗青春 阅读(473) 评论(0) 推荐(0) 编辑