数学基础IV 欧拉函数 Miller Rabin Pollard's rho 欧拉定理 行列式
找了一些曾经没提到的算法。这应该是数学基础系最后一篇。
曾经的文章:
数学基础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 欧拉定理 行列式的更多相关文章
- 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 这 ...
- POJ1811- Prime Test(Miller–Rabin+Pollard's rho)
题目大意 给你一个非常大的整数,判断它是不是素数,如果不是则输出它的最小的因子 题解 看了一整天<初等数论及其应用>相关部分,终于把Miller–Rabin和Pollard's rho这两 ...
- 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 ...
- 欧拉函数&欧拉定理&降幂 总结
欧拉函数&欧拉定理&降幂 总结 标签:数学方法--数论 阅读体验:https://zybuluo.com/Junlier/note/1300214 这年头不总结一下是真的容易忘,老了老 ...
- BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数
BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数 Description 已知N,求phi(N) Input 正整数N.N<=10^18 Output 输出phi(N) Sa ...
- 【BZOJ4803】逆欧拉函数
[BZOJ4803]逆欧拉函数 题面 bzoj 题解 题目是给定你\(\varphi(n)\)要求前\(k\)小的\(n\). 设\(n=\prod_{i=1}^k{p_i}^{c_i}\) 则\(\ ...
- 【BZOJ4802】欧拉函数(Pollard_rho)
[BZOJ4802]欧拉函数(Pollard_rho) 题面 BZOJ 题解 这么大的范围肯定不好杜教筛. 考虑欧拉函数的计算式,显然只需要把\(n\)分解就好了. 直接\(Pollard\_rho\ ...
- BZOJ4802 欧拉函数 (Pollard-Rho Miller-Robin)
题目 求大数的欧拉函数φ\varphiφ 题解 Pollard-Rho 板子 CODE #pragma GCC optimize (3) #include <bits/stdc++.h> ...
- hdu2588 GCD (欧拉函数)
GCD 题意:输入N,M(2<=N<=1000000000, 1<=M<=N), 设1<=X<=N,求使gcd(X,N)>=M的X的个数. (文末有题) 知 ...
随机推荐
- [20170607]再论Private Strand Flush Not Complete.txt
[20170607]再论Private Strand Flush Not Complete.txt --//曾经跟zergduan有过讨论,链接www.itpub.net/thread-2065703 ...
- 简单易懂的程序语言入门小册子(7):基于文本替换的解释器,加入continuation,重构解释器
或许在加入continuation之前要先讲讲费这么大劲做这个有什么意义. 毕竟用不用continuation的计算结果都是一样的. 不过,这是一个兴趣使然的系列,学习这些知识应该完全出于好奇与好玩的 ...
- 百度地图在web中的使用(一)
百度地图在web中的使用(js) 背景:在公司做一个地理位置的自定义字段,需要用到地图来获取经纬度和地址,在这选择了百度地图 准备工作 注册百度地图开发者,创建应用获取key http://lbsyu ...
- 让python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE等请求(新方法)
通过上篇博文的方法处理后,进入代码调试后发现ajax获取不了服务器端返回的数据,度娘后发现原来AJAX的OPTIONS请求方式是状态类型查询,即向服务器提交信息后不返回任何信息,只将执行状态(200状 ...
- M码小黄衫买家秀=w=
M码小黄衫买家秀=w= 17°的天气穿不了短袖polo..就只能这样强行上图啦~ 因为我一直耿耿于大一面向对象课上拿到的那件XL码小黄衫,长到能穿到膝盖,拍小黄衫全家福时候只能很凄凉的借了件小号的穿, ...
- win32gui.Findwindow(parm1,parm2)查找窗口的句柄方法
介绍之前先让大家了解一下win32gui的模块用法 和 获取窗口类名工具 使用Python时,有时也会要操作到系统窗口的一些东西,下面就介绍win32gui.Findwindow(param1,par ...
- 【转】win2008 中iis7设置404页面但返回状态200的问题解决办法
今天根据SEO反馈,某个站点中设置的404页面返回的http状态为200.通过站长工具进行查询,发现返回的状态确实为200. 通过彻查问题,发现这个网站的服务器环境为windows2008 服务器为i ...
- 【Linux基础】Linux常用命令汇总
3-1文件目录操作命令(cd pwd mkdir rmdir rm) 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc: 相对路径:相对于目前路径的 ...
- Web和移动开发的未来
Web和移动开发的未来 当我们与来自整个IT行业的专家交谈时,他们告诉我们技术,PWA和优化的持续整合是关键. 为了收集有关网络和移动开发当前和未来状况的见解,我们与19位IT主管进行了交流,我们问道 ...
- ElasticSearch(六):安装中文分词器插件smartcn
首先进入elasticsearch的bin目录 然后执行 # sh elasticsearch-plugin install analysis-smartcn 安装完成后,需要重启elasticse ...