随笔分类 - 数学
摘要:上一题是欧拉函数打表,这一题赤裸裸的欧拉函数;就当熟悉下模板把;其实自己以前也没敲过``` 1 #include 2 using namespace std; 3 long long MakePhi(long long n) 4 { 5 long long res = n, i; 6 for(i = 2; i <= n; ++ i) 7 { 8 if(n % i == 0) 9 {10 res -= res / i;11 while(n % i == 0)12 ...
阅读全文
摘要:从来没有接触过完全剩余系,不会证明,知道看了别人的题解才知道要用欧拉函数;下面是证明过程:p是奇素数,如果{xi%p | 1 2 using namespace std; 3 const int maxn=65540; 4 int phi[maxn]={0}; 5 void phi_table() 6 { 7 int i,j; 8 phi[1]=i; 9 for(i=2;i<maxn;i++)10 {11 if(!phi[i])12 for(j=i;j<maxn;j+=i)13 {14 ...
阅读全文
摘要:这道题WA了我好多次,就像比赛的时候一样,都是些小错误,但oj是无情的,让我一W再W;当时正和安叔聊着天,安叔一直在批评我们平时做题很水,太依赖死东西了。以后真的不能再依赖模板了```说说这题吧。思路很容易想到```我刚刚开始直接用gcd的办法,超时了,没办法,数据很大```先算出/g=a/b;然后对g用那个Pollard_rho算法得出所有的素因数,排序,把相同的元素结合在一起;这样可以保证待会儿分解的时候不会有相同的因数;分解的时候,从g的平方根开始用dfs,很简单```贴下代码: 1 #include 2 #include 3 #include 4 #include 5 #in...
阅读全文
摘要:基本上一个裸的Miller_Rabin大素数判定和一个裸的Pollard_rho素数分解算法,当模板用吧! 1 #include 2 #include 3 #include 4 #define LL long long 5 using namespace std; 6 const int s=20; 7 int tol; 8 LL factor[100]; 9 10 LL mult_mod(LL a,LL b,LL c)//计算a*b%c; 11 { 12 LL ret=0; 13 a%=c; 14 b%=c; 15 while(b>0) 1...
阅读全文