找了一些曾经没提到的算法。这应该是数学基础系最后一篇。
曾经的文章:
数学基础I
莫比乌斯反演I
莫比乌斯反演II
数学基础II
生成函数
数学基础III
博弈论
容斥原理(hidden)
线性基(hidden)
卡特兰数/第二类斯特林数(hidden)
置换群(hidden)
莫比乌斯反演III(hidden)
线性筛(hidden)

欧拉函数

计算单个欧拉函数

设\(n\)的唯一分解为\(p_i\),则\(\varphi(n)=n\prod(1-\frac{1}{p_i})\)。

奇偶性

\(2|\varphi(n)\Leftrightarrow n \ne 2\)

约数拆分

\[\varphi(pq)=\frac{\varphi(p)\varphi(q)\gcd(p,q)}{\varphi(\gcd(p,q))}\]

其它性质

  • 比\(n\)小的与\(n\)互质的数的和为\(n\cdot \frac{\varphi(n)}{2}\)
    证明:满足条件的数是成对出现的,可分为\(\frac{\varphi(n)}{2}\)组,每组和为\(n\)。
  • 等式二:\(\sum_{d|n}\varphi(d)=n\)
  • 定义变换:\(\sum_{i=1}^n[(i,n)=1]=\varphi(n)\)
    和莫比乌斯函数换一换可以得到等式三

练习题

求\(\sum_{i=1}^n\sum_{j=1}^nisprime((i,j))\)。

好像与各种恒等变形有关的题都可以叫莫比乌斯反演……
与抽取变换类似,把质数提到前面,有\[=\sum_{p=prime[]}\sum_{i=1}^n\sum_{j=1}^n[(i,j)=p]\]
\[=\sum_{p=prime[]}\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{p}\rfloor}[(i,j)=1]\]
预处理欧拉函数前缀和,枚举质数即可。复杂度\(O(\ln n)\)。

Miller-Rabin质数测试

对于一个数\(n\),将\(n-1\)分解为\(u\times 2^t(2\nmid u)\)。然后我们随机一个\(a=random(1,n-1)\),每次再枚举\(2\)的次数\(k\)。若\(a^{u\times 2^k}=1\),且\(a^{u\times 2^{k-1}}\ne1\)且\(a^{u\times 2^{k-1}}\ne n-1\),那么\(n\)不是质数(二次探测定理)。最后若\(a^{u\times 2^t}\ne1\),则\(n\)不是质数(费马小定理),否则\(n\)可能是质数。可以证明每次判断可能是质数的正确率是75%,因此我们随机20次即可。此时错误率为\(10^{-14}\)。

证明见各大博客。

inline int miller_rabin(long long n) {
    if(n == 2) return 1;
    if(n < 2 || !(n&1)) return 0;
    long long t = 0, u = n-1;
    while(u&1) {
        t++;
        u >>= 1;
    }
    for(int ri; ri < 20; ri++) {
        long long a = rand() % (n-1) + 1, last = qpow(a, u, n);
        for(int i = 0; i < t; i++) {
            long long x = qmul(last, last, n);
            if(x == 1 && last != 1 && last != n-1) return 0;
            last = x;
        }
        if(last != 1) return 0;
    }
    return 1;
} 

2018.10.1UPD:事实证明只用随机8次即可通过\(10^5\)以上的测试数量。这说明每次判断的正确率可能高于95%。注意可以加上前10个质数的特判。

Pollard's rho算法

没用的东西

生日悖论 在\([1,n]\)中随机撒点,期望第一次取到重点的次数是\(\sqrt n\)。
我们首先考虑这样一个算法:在\([2,n-1]\)中随机选取\(k\)个数,若其中有两个数的差与\(n\)不互质,则这个差与\(n\)的最小公倍数是\(n\)的一个约数。
可以证明\(k\)取约\(n^{\frac{1}{4}}\)时有较大概率得到答案。这样复杂度太高。
考虑不生成随机数,改为每次检查两个相邻的数。我们希望这样能得到答案。
设\(x_0=rand()\),每次令\(x=(x_0^2+a)\bmod n\),然后检查\(\gcd(|x-x_0|,n)\)是否为\(1\)。

正文

但是这样会出现循环,即\(x\)又取到了一个之前取过的值。于是我们取\(y=x_1,x_2,x_4,x_8...\)即可,当\(\gcd(|x-y|,n)\in [2,n-1]\)时找到一个约数,当\(x=y\)时重新选一个\(a\)再次进行这个算法。
设\(n\)的一个小约数是\(p\),可以证明找到这个约数的期望时间复杂度为\(O(\sqrt p)\)。
为了提高效率,我们递归求解,每次先用Miller-Rabin判断是否为质数,然后分解。若出现循环则再次调用(此时\(a\)不同),否则递归处理\(p\)和\(\frac{n}{p}\)。

inline long long pollard_rho(long long n, long long a) {
    long long i = 1, k = 2, x = rand()%n, y = x;
    for(;;) {
        i++;
        x = (mul(x, x) + a) % n;
        long long d = gcd(abs(x-y), n);
        if(d != 1 && d != n) return d;
        if(x == y) return n; // 返回不可行
        if(i == k) {
            y = x; // y = x1, x2, x4, x8, ...
            k <<= 1;
        }
    }
}

void findfac(long long n) {
    if(n == 4) {
        fc[0] = fc[1] = 2; fcn = 2;
        return;
    }
    if(miller_rabin(n)) {
        fc[fcn++] = n;
        return;
    }
    for(;;) { // 不是质数,必定有因数
        long long p = pollard_rho(n, rand()%(n-3)+3);
        if(p != n) {
            findfac(p);
            findfac(n/p);
            return;
        }
    }
}

注:以上讲解非常没有逻辑联系,因为我找的文章我都看不懂,而代码实现非常方便,因此直接实现代码就好了。

行列式

用高斯消元求。

inline int det() {
    int ret = 1, w = 1;
    for(int i = 0; i < n; i++) {
        int p = i;
        for(int j = i+1; j < n; j++) if(a[j][i] != 0) p = j;
        if(i != p) {
            w = -w; // 交换两行行列式值取反
            for(int j = 0; j < n; j++) swap(a[i][j], a[p][j]);
        }
        int invii = inv(a[i][i]);
        for(int j = n-1; j >= i; j--) for(int k = i+1; k < n; k++) {
            a[k][j] -= (long long)a[k][i] * invii % _mod * a[i][j] % _mod;
            if(a[k][j] < 0) a[k][j] += _mod;
        }
    }
    for(int i = 0; i < n; i++) ret = (long long)ret * a[i][i] % _mod;
    return w == 1 ? ret : _mod-ret;
}

在做矩阵树定理时,有人说行列式要取绝对值,但事实证明不需要取。

二次剩余

4 3 2 1 1 1 5 3 9 4 1 1 5 1 1 3 1 1 5 2 1 1 1 1 7 2 1 3 5 1 4 1 1 1 4 1 1 1 2 2 6 3 2 1 6 3 1 1 7 3 2 2 4 1 1 5 5 1 2 1 1 2 5 1 4 1 1 1 4 1 4 1 6 1 2 3 6 1 1 2 3 1 4 2 1 1 1 1 6 1 4 2 5 1 2 5 4 1 3 2 7 1 1 1 1 1 6 1 12 2 2 2 5 1 1 2 8 1 2 1 1 3 4 2 1 1 8 1 2 5 4 2 1 2 1 2 4 2 3 2 5 1 2 2 1 1 5 1 2 5 4 2 2 4 4 1 2 1 2 2 5 5 7 4 7 1 1 1 3 2 6 2 1 1 1 1 4 1 3 4 5 1 2 1 7 1 1 5 6 2 2 3 4 1 2 2 2 1 4 1 1 2 1 3 4 1 3 1 1 1 5 1 1 1 9 3 10 2 1 2 6 2 1 3 7 4 1 2 6 3 1 2 5 1 1 2 8 1 2 1 1 1 5 1 3 2 1 1 4 1 2 1 2 1 5 1 3 1 1 1 5 1 2 2 1 1 5 1 1 1 9 1 1 1 1 1 1 2 5 4 1 2 4 1 5 1 5 1 2 2 2 1 4 1 2 2 2 1 4 3 3 2 5 3 8 2 1 1 3 1 6 2 1 1 6 1 1 1 1 1 2 1 4 2 3 3 4 1 1 2 1 2 5 2 3 1 6 1 1 1 1 1 1 2 4 2 2 2 6 1 2 2 8 4 1 2 4 1 1 3 1 1 6 2 1 3 5 1 4 2 6 5 1 1 4 2 1 2 8 5 1 1 5 4 2 1 5 2 1 1 2 1 4 1 2 1 1 1 7 1 1 1 2 1 5 1 2 1 2 2 4 1 2 1 2 1 5 2 1 2 1 2 5 2 2 1 6 1 2 3 1 1 5 1 3 1 6 1 2 2 8 5 6 1 1 3 1 2 4 1 2 1 1 3 4 2 1 2 1 1 5 2 3 2 6 2 3 1 7 3 2 1 5 2 1 1 8 1 1 2 1 1 5 1 3 1 1 1 5 2 2 1 1 2 4 2 2 1 9 1 3 1 5 1 1 2 2 1 5 2 1 1 1 1 6 2 1 2 2 1 4 2 2 4 4 2 1 1 1 2 6 2 1 2 7 2 1 3 5 2 1 3 1 1 4 1 1 1 2 1 6 1 5 1 6 3 2 1 5 1 3 2 6 2 1 4 6 4 2 1 4 2 3 1 6 1 3 3 5 1 3 1 1 2 4 1 1 1 2 1 7 2 2 3 5 1 1 4 5 1 3 2 6 1 4 2 5 2 1 3 6 1 1 1 4 1 5 7 4 1 3 4 5 2 1 4 5 1 1 1 1 3 4 1 1 5 5 2 3 1 7 3 3 1 4 1 2 3 1 1 4 1 2 3 6 1 1 1 4 1 5 2 4 1 5 1 1 1 1 1 1 1 4 1 3 1 7 3 1 4 4 1 1 2 1 2 5 1 4 2 5 1 1 2 1 2 5 1 2 2 1 1 5 1 1 4 6 1 3 2 1 1 4 1 3 3 5 2 2 1 8 3 1 2 5 2 1 1 1 3 5 1 1 1 2 2 4 1 2 1 1 3 4 3 4 1 5 1 1 1 1 3 4 1 3 1 1 2 4 3 3 2 4 2 2 1 8 2 1 3 7 1 2 2 6 4 1 2 4 3 1 1 2 1 4 1 1 4 7 2 1 1 2 1 4 1 2 4 5 1 3 1 1 2 5 3 2 1 5 1 5 2 4 1 3 4 4 1 4 1 1 1 5 4 2 1 4 1 2 1 1 3 4 1 3 2 1 1 4 1 1 1 2 1 1 1 4 1 1 6 4 1 2 1 1 1 6 1 5 1 5 1 3 4 4 2 2 1 7 1 1 4 1 1 5 1 1 2 1 2 4 2 2 2 1 1 4 2 1 1 8 1 2 2 7 1 4 3 6 4 6 1 5 2 5 4 8 5 7 1 1 1 1 1 1 1 5 1 3 1 6 4 1 1 6 1 1 3 2 1 5 2 1 1 1 2 4 3 4 1 4 1 1 1 1 2 6 2 1 3 1 1 5 5 6 1 2 3 6 1 1 1 1 3 6 4 1 2 5 1 1 2 1 2 4 1 2 1 2 1 5 2 5 1 4 1 2 1 2 1 5 1 4 1 1 1 4 1 2 2 1 1 5 1 5 1 5 1 1 1 4 1 4 1 2 1 1 1 1 1 5 1 2 3 6 3 1 1 6 1 2 1 2 2 4 2 1 4 6 5 7 4 8 3 2 1 5 2 1 1 1 1 6 1 2 1 8 1 1 1 1 4 5 3 1 1 1 1 6 1 9 4 8 3 2 2 5 1 1 2 1 3 4 1 2 5 6 4 1 1 4 1 2 2 7 1 1 3 7 3 2 2 6 3 3 1 4 1 3 1 1 2 4 2 2 3 6 4 2 1 5 2 1 1 1 2 4 1 1 1 1 4 4 1 3 4 4 2 5 1 4 2 1 1 2 1 7 1 2 1 7 2 2 1 6 2 1 4 5 1 5 1 6 1 1 2 7 1 1 1 2 1 6 1 1 1 1 1 1 1 5 1 2 2 1 2 4 1 1 1 2 1 1 1 4 1 2 3 6 1 5 2 4 1 4 1 6 1 1 3 10 3 1 1 4 1 1 1 2 1 1 1 4 3 1 1 1 2 4 1 2 2 1 1 6 1 1 1 8 1 1 3 2 1 4 1 3 2 7 2 2 1 6 1 1 6 4 2 3 1 7 4 2 1 5 1 1 2 7 2 2 3 5 1 2 1 1 1 6 2 1 1 3 1 6 2 1 3 4 2 2 1 7 1 6 1 6 1 2 1 7 2 4 1 4 1 6 1 5 5 8 1 9 1 1 1 1 4 5 4 2 1 4 1 2 1 3 1 4 2 2 1 7 1 1 2 2 1 5 1 1 1 1 2 6 1 2 1 1 2 6 3 2 2 4 1 1 2 8 2 3 2 5 3 2 3 6 1 1 3 6 2 1 2 1 1 5 3 1 1 6 1 2 2 7 2 3 1 6 1 1 5 5 2 5 1 4 1 2 1 2 2 4 1 1 2 9 3 8 1 1 1 3 2 4 1 3 3 6 2 1 1 1 1 6 2 4 1 4 1 1 2 1 1 1 1 5 1 2 2 6 2 1 1 1 1 1 1 4 1 11 3 2 2 5 1 1 4 1 1 6 5 5 2 4 1 5 2 2 2 1 1 4 2 1 4 5 2 3 3 4 1 2 2 7 1 4 2 5 1 5 2 4 2 11 2 2 2 6 4 1 2 7 1 2 1 7 5 5 1 1 1 2 1 6 1 3 1 1 1 6 6 5 2 3 1 1 1 4 1 11 1 1 3 1 1 7 1 3 1 6 2 1 3 5 1 2 1 1 2 6 5 1 1 5 4 7 1 3 2 6 2 1 2 1 1 5 1 2 1 1 1 1 1 4 1 3 2 6 2 1 1 3 1 4 2 1 2 2 1 5 2 2 3 4 2 1 1 1 2 5 2 1 1 8 1 1 2 1 1 6 2 2 1 2 1 5 2 1 2 6 2 1 1 3 1 4 2 1 1 3 1 4 1 1 2 1 1 7 1 1 1 8 1 1 4 6 1 1 5 5 1 1 2 2 1 6 1 1 2 1 1 5 3 1 1 1 1 6 2 1 1 1 1 6 5 6 1 2 5 4 1 1 2 1 3 4 1 1 6 6 1 1 2 1 1 4 1 1 1 1 1 1 2 4 1 3 1 2 1 4 1 3 1 1 1 6 3 1 1 6 1 2 1 9 1 1 1 9 3 1 1 6 1 1 2 2 1 5 3 2 3 5 6 5 1 1 1 1 1 7 1 1 2 3 1 5 4 1 2 4 1 2 1 8 2 1 1 1 1 6 1 2 1 1 1 9 2 2 1 5 4 2 1 4 1 2 1 9 1 3 3 5 7 4 2 1 1 1 1 7 5 1 1 5 1 2 1 2 1 4 1 4 3 4 1 1 1 3 2 4 1 1 4 1 1 4 1 2 2 2 1 4 2 1 1 1 2 5 1 1 2 1 3 4 2 1 1 1 2 6 1 4 1 5 1 3 3 5 2 1 1 1 2 6 5 7 2 4 1 4 1 2 1 2 1 5 1 11 1 3 1 2 1 5 3 2 1 5 1 1 1 3 1 5 1 3 1 1 1 5 2 3 1 7 2 2 1 6 1 3 1 7 2 2 2 1 1 6 1 2 2 5 1 1 3 1 1 5 1 1 1 1 4 4 1 2 2 2 1 5 7 4 1 2 4 5 2 2 1 2 1 6 1 1 1 1 2 4 2 1 1 8 3 3 2 4 1 2 1 1 1 1 1 6 1 1 2 6 1 1 1 3 2 5 2 1 4 6 1 1 1 1 2 4 1 2 1 2 1 6 2 1 1 7 1 1 1 1 3 5 1 1 3 7 1 4 3 4 1 1 1 3 1 5 3 4 1 4 2 3 1 7 2 1 3 5 3 1 4 4 1 1 2 1 3 4 2 1 2 2 1 6 1 1 4 6 1 1 3 5 1 1 2 1 1 1 1 4 3 2 1 1 1 4 2 3 1 7 3 8 1 3 1 1 2 4 2 1 1 3 1 5 1 2 1 8 1 1 2 7 1 2 1 2 2 4 1 3 3 5 1 2 1 1 1 1 1 4 1 4 2 6 1 1 1 1 1 6 2 2 2 1 1 5 2 1 1 1 2 5 1 2 3 5 2 3 3 5 3 1 3 4 2 2 2 7 4 1 1 9 1 1 2 4 1 5 1 5 3 4 1 4 2 1 4 6 1 1 1 1 1 1 1 4 1 2 1 1 3 4 2 1 2 1 2 4 1 3 1 1 2 4 1 2 1 9 4 1 1 5 2 1 2 9 3 1 1 5 1 1 3 7 1 4 3 5 1 1 1 3 1 5 6 5 1 2 1 2 1 5 1 4 1 7 3 1 3 5 3 8 1 4 1 7 5 1 1 5 1 1 1 1 2 6 2 1 2 1 1 4 1 2 1 8 2 2 1 1 2 4 3 1 1 2 1 5 4 1 2 5 2 2 1 6 1 5 2 4 1 1 2 1 3 4 1 2 3 6 1 3 3 6 1 1 1 2 2 4 2 1 2 2 1 4 3 2 3 4 1 1 1 1 1 9 1 1 2 7 1 1 1 8 1 2 5 4 1 1 2 2 1 5 1 1 3 7 1 3 1 7 1 1 1 1 2 6 1 5 1 5 1 2 2 1 1 6 1 3 2 5 1 2 1 1 3 5 5 1 1 4 1 1 1 1 1 1 1 6 1 1 5 5 2 1 2 6 2 1 1 1 2 5 1 4 2 6 2 1 1 2 1 4 2 1 1 1 1 6 2 1 1 1 2 5 1 2 1 1 1 1 1 4 2 11 3 3 1 5 1 1 3 6 1 3 1 2 1 4 1 1 2 2 1 5 1 1 1 1 2 7 1 1 1 3 1 5 2 1 2 6 1 1 4 1 1 4 1 2 1 1 1 1 1 5 1 1 1 8 1 1 3 1 2 4 1 2 1 3 1 5 7 5 1 1 5 5 2 2 1 6 3 1 2 1 1 4 3 1 3 5 1 3 3 6 2 1 1 2 1 4 1 2 3 6 1 1 1 1 3 5 1 2 1 2 1 6 7 4 1 1 1 3 2 5 3 1 3 4 3 10 3 8 1 2 1 2 2 5 5 1 1 5 1 2 1 8 3 8 4 8 1 4 1 1 1 4 4 2 2 5 1 1 1 2 1 5 2 2 1 1 1 6 2 2 1 1 1 4 1 3 2 1 1 4 1 1 2 3 1 5 4 1 1 5 1 1 1 2 1 7 2 4 1 4 1 2 1 1 3 4 1 2 1 1 2 5 1 1 2 8 1 1 3 1 2 5 3 3 1 5 2 1 1 2 1 4 1 2 5 4 1 2 1 1 1 6 1 4 1 7 6 5 1 2 2 1 2 4 1 1 2 1 1 1 1 5 2 2 1 1 1 5 1 1 3 1 1 4 1 1 1 1 1 2 1 4 1 1 1 1 2 1 1 5 3 1 1 8 2 1 2 5 1 3 2 1 1 5 1 1 2 7 1 2 1 8 1 3 1 1 2 4 1 2 1 2 1 5 1 2 2 1 1 5 1 1 1 2 1 1 1 4 1 1 3 8 1 2 2 6 2 3 3 4 1 2 3 1 1 4 1 1 4 6 1 3 2 1 1 4 1 1 4 1 1 5 7 5 4 1 2 5 2 4 1 5 1 1 4 5 1 2 2 1 2 5 2 1 2 1 1 5 2 1 1 7 2 3 1 6 1 1 1 4 1 5 2 1 1 7 2 1 1 3 1 4 1 4 1 6 1 2 3 6 1 4 1 6 1 1 1 2 1 1 1 5 3 3 1 4 3 1 2 7 2 1 1 1 1 6 2 1 1 1 1 5 1 2 4 5 1 4 1 1 1 4 1 1 6 4 1 1 1 1 2 1 1 4 2 1 2 7 1 1 3 2 1 6 1 1 1 1 2 4 1 1 1 2 3 4 2 1 5 4 1 1 2 3 1 4 1 2 1 3 1 5 4 2 1 5 7 4 1 1 1 2 1 1 1 4 1 1 1 2 2 7 2 1 1 6 1 2 3 1 1 4 2 1 2 1 1 5 3 2 2 6 7 4 3 9 3 1 1 1 2 4 1 1 1 9 1 11 1 2 1 1 1 1 1 4 1 1 1 1 1 1 2 4 1 1 1 2 1 1 1 4 2 1 1 3 1 6 1 10 1 1 2 7 2 3 2 5 2 2 1 1 1 5 1 1 5 6 4 1 2 4 2 4 1 5 3 3 1 5 2 1 2 7 2 2 2 9 1 1 2 5 1 2 3 1 1 5 3 2 2 4 1 2 2 7 2 1 1 2 1 6 4 1 1 5 1 1 1 2 1 1 1 4 1 2 2 1 1 6 3 3 1 4 1 1 2 2 1 6 3 3 1 4 1 1 1 1 1 2 1 5 2 1 3 5 1 4 1 6 1 2 1 1 1 7 2 1 1 1 2 5 3 1 3 4 1 11 1 2 1 1 2 6 1 1 1 1 1 6 1 2 1 3 1 4 1 1 1 1 2 7 5 6 1 3 2 1 1 4 2 1 1 1 2 5 1 2 1 1 2 6 2 2 3 4 3 1 1 2 1 4 1 1 4 1 1 4 1 3 1 1 1 6 2 1 4 4 3 2 2 5 1 1 1 2 2 5 1 2 3 1 1 4 2 1 1 8 1 1 1 4 1 5 1 1 5 4 3 1 4 5 3 1 2 5 2 2 2 7 1 2 1 7 1 2 3 6 1 2 1 2 2 4 1 3 2 1 1 5 2 1 1 9 4 1 1 4 4 2 1 5 1 2 1 1 3 4 2 1 2 1 1 6 2 2 3 5 1 3 1 7 1 1 5 4 1 6 1 4 4 3 1 5 1 2 2 7 2 3 1 5 1 2 2 1 2 5 3 2 2 5 4 9 1 1 1 8 1 1 1 3 1 4 3 1 2 1 1 4 2 2 1 1 2 4 1 3 1 7 2 1 1 2 1 6 2 2 3 4 1 3 3 5 1 1 1 1 2 6 2 1 1 1 1 6 1 1 1 1 3 6 1 2 4 4 3 1 2 7 1 1 3 2

数学基础IV 欧拉函数 Miller Rabin Pollard's rho 欧拉定理 行列式的更多相关文章

  1. POJ2429 - GCD & LCM Inverse(Miller–Rabin+Pollard's rho)

    题目大意 给定两个数a,b的GCD和LCM,要求你求出a+b最小的a,b 题解 GCD(a,b)=G GCD(a/G,b/G)=1 LCM(a/G,b/G)=a/G*b/G=a*b/G^2=L/G 这 ...

  2. POJ1811- Prime Test(Miller–Rabin+Pollard's rho)

    题目大意 给你一个非常大的整数,判断它是不是素数,如果不是则输出它的最小的因子 题解 看了一整天<初等数论及其应用>相关部分,终于把Miller–Rabin和Pollard's rho这两 ...

  3. hdu_2837_Calculation(欧拉函数,快速幂求指数循环节)

    Assume that f(0) = 1 and 0^0=1. f(n) = (n%10)^f(n/10) for all n bigger than zero. Please calculate f ...

  4. 欧拉函数&欧拉定理&降幂 总结

    欧拉函数&欧拉定理&降幂 总结 标签:数学方法--数论 阅读体验:https://zybuluo.com/Junlier/note/1300214 这年头不总结一下是真的容易忘,老了老 ...

  5. BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数

    BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数 Description 已知N,求phi(N) Input 正整数N.N<=10^18 Output 输出phi(N) Sa ...

  6. 【BZOJ4803】逆欧拉函数

    [BZOJ4803]逆欧拉函数 题面 bzoj 题解 题目是给定你\(\varphi(n)\)要求前\(k\)小的\(n\). 设\(n=\prod_{i=1}^k{p_i}^{c_i}\) 则\(\ ...

  7. 【BZOJ4802】欧拉函数(Pollard_rho)

    [BZOJ4802]欧拉函数(Pollard_rho) 题面 BZOJ 题解 这么大的范围肯定不好杜教筛. 考虑欧拉函数的计算式,显然只需要把\(n\)分解就好了. 直接\(Pollard\_rho\ ...

  8. BZOJ4802 欧拉函数 (Pollard-Rho Miller-Robin)

    题目 求大数的欧拉函数φ\varphiφ 题解 Pollard-Rho 板子 CODE #pragma GCC optimize (3) #include <bits/stdc++.h> ...

  9. hdu2588 GCD (欧拉函数)

    GCD 题意:输入N,M(2<=N<=1000000000, 1<=M<=N), 设1<=X<=N,求使gcd(X,N)>=M的X的个数.  (文末有题) 知 ...

随机推荐

  1. [20170607]再论Private Strand Flush Not Complete.txt

    [20170607]再论Private Strand Flush Not Complete.txt --//曾经跟zergduan有过讨论,链接www.itpub.net/thread-2065703 ...

  2. 简单易懂的程序语言入门小册子(7):基于文本替换的解释器,加入continuation,重构解释器

    或许在加入continuation之前要先讲讲费这么大劲做这个有什么意义. 毕竟用不用continuation的计算结果都是一样的. 不过,这是一个兴趣使然的系列,学习这些知识应该完全出于好奇与好玩的 ...

  3. 百度地图在web中的使用(一)

    百度地图在web中的使用(js) 背景:在公司做一个地理位置的自定义字段,需要用到地图来获取经纬度和地址,在这选择了百度地图 准备工作 注册百度地图开发者,创建应用获取key http://lbsyu ...

  4. 让python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE等请求(新方法)

    通过上篇博文的方法处理后,进入代码调试后发现ajax获取不了服务器端返回的数据,度娘后发现原来AJAX的OPTIONS请求方式是状态类型查询,即向服务器提交信息后不返回任何信息,只将执行状态(200状 ...

  5. M码小黄衫买家秀=w=

    M码小黄衫买家秀=w= 17°的天气穿不了短袖polo..就只能这样强行上图啦~ 因为我一直耿耿于大一面向对象课上拿到的那件XL码小黄衫,长到能穿到膝盖,拍小黄衫全家福时候只能很凄凉的借了件小号的穿, ...

  6. win32gui.Findwindow(parm1,parm2)查找窗口的句柄方法

    介绍之前先让大家了解一下win32gui的模块用法 和 获取窗口类名工具 使用Python时,有时也会要操作到系统窗口的一些东西,下面就介绍win32gui.Findwindow(param1,par ...

  7. 【转】win2008 中iis7设置404页面但返回状态200的问题解决办法

    今天根据SEO反馈,某个站点中设置的404页面返回的http状态为200.通过站长工具进行查询,发现返回的状态确实为200. 通过彻查问题,发现这个网站的服务器环境为windows2008 服务器为i ...

  8. 【Linux基础】Linux常用命令汇总

    3-1文件目录操作命令(cd pwd mkdir rmdir rm) 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc: 相对路径:相对于目前路径的 ...

  9. Web和移动开发的未来

    Web和移动开发的未来 当我们与来自整个IT行业的专家交谈时,他们告诉我们技术,PWA和优化的持续整合是关键. 为了收集有关网络和移动开发当前和未来状况的见解,我们与19位IT主管进行了交流,我们问道 ...

  10. ElasticSearch(六):安装中文分词器插件smartcn

    首先进入elasticsearch的bin目录 然后执行 #  sh elasticsearch-plugin install analysis-smartcn 安装完成后,需要重启elasticse ...