欧拉函数
morejarphone
这个作者很懒,什么都没留下…
展开
-
HDU4279(数论)
#include #include #include using namespace std; #define maxn 5111 const double INF = (1<<31); long double l, r; long long solve (long double x) { if (x < 6) return 0; long long an原创 2015-10-23 00:11:04 · 354 阅读 · 0 评论 -
UVA 11426 (欧拉函数)
白书125页例题。 gcd(x,n)所有可能的值是n的约数,要满足gcd(x,n) = i(i是n的约数)必然有gcd (x/i, n/i) = 1,也就是ph(n/i)的值。也就是对于每一个数i,如果i是n的约数,那么i在以n结尾的gcd中出现phi(i)次,这就是i对答案的贡献。 #include using namespace std; #define maxn 4000000 l原创 2015-11-19 14:53:57 · 364 阅读 · 0 评论 -
HDU 5728 (欧拉函数)
题目链接:点击这里超级幂的弱化版本这里然后就是把底数k求出来,假设p是n的一个质因数,因为n无平方因子,所以gcd(n,pn)=1gcd(n,\frac{p}{n})=1,所以可以得到f(n,m)=∑i=1mϕ(i×n)=ϕ(p)∑i=1&&i%p≠0mϕ(i×np)+∑i=1mpϕ(i×p×n)=ϕ(p)∑i=1&&i%p≠0mϕ(i×np)+p∑i=1mpϕ(i×n)=ϕ(p)∑i=1&&i%p原创 2016-07-23 00:09:20 · 490 阅读 · 0 评论 -
HDU 5780 (欧拉函数)
题目链接:点击这里题意: 求∑na=1∑nb=1gcd(xa−1,xb−1)\sum_{a=1}^n\sum_{b=1}^ngcd(x^a-1,x^b-1).因为gcd(xa−1,xb−1)=xgcd(a,b)−1gcd(x^a-1, x^b-1)=x^{gcd(a,b)}-1, 然后就是计算所有的gcd(a,b)gcd(a,b)的值对答案的贡献, 最后减去n2n^2个1. 如果用f[i]f[i]表原创 2016-07-31 10:30:47 · 1009 阅读 · 2 评论 -
BZOJ 3884 (欧拉函数)
题目链接:点击这里题意:求2222....%p2^{2^{2^{2^{....}}}}\% p.设p=2n+qp=2^n+q,那么2222....%p=2n(2(2222....−n)%q)=2n(2(2222....−n)%ϕ(q)%q) \begin{align} 2^{2^{2^{2^{....}}}}\% p&= 2^n(2^{(2^{2^{2^{2^{....}}}}-n)} \%q)原创 2016-07-21 14:06:11 · 293 阅读 · 0 评论