欧拉函数定义:小于n且与n互素的数的个数欧拉函数为积性函数,满足积性函数的性质,即可以通过n的素因子的函数值求得n的欧拉函数值求值方式有两种,单个判断和打表代码如下int phi(int n){ int res=n; for(int i=2;i*i1) res=res-re...
分类:
其他好文 时间:
2014-09-12 22:00:44
阅读次数:
514
所谓可见点,即是(a,b)=1的点,使用欧拉函数,求出比之小的与之互质的个数即可,又对称,所以乘2,最后要+1.#include #include #include #include using namespace std;const int N=1050;int phi[N];void initi...
分类:
其他好文 时间:
2014-09-10 15:47:50
阅读次数:
209
使用递推求欧拉函数,因为FN就是欧拉函数的累加和。#include #include #include #include using namespace std;const int Max=1000010;int phi[Max];int main(){ for(int i=1;i<Max;i++)...
分类:
其他好文 时间:
2014-09-10 12:22:10
阅读次数:
141
想了很久,只想到枚举的方法,估计会超时吧。原来有这样一条性质:p为素数,则p有phi(p-1)个原根Orz...#include #include #include #include using namespace std;int main(){ int n; while(scanf("%d",&n...
分类:
其他好文 时间:
2014-09-10 10:45:30
阅读次数:
208
定理:假如一个数x有原根,则元根的个数为phi(phi(x)),phi(x)为小于x且与x互质的正整数个数。#include #include using namespace std;int p;int f(int x){ int ans=x; int m=sqrt(x+0.5); ...
分类:
其他好文 时间:
2014-09-09 11:12:28
阅读次数:
222
求一个平面内可见的点,其实就是坐标互质即可,很容易看出来或者证明所以求对应的欧拉函数即可#include #include #include #include using namespace std;int phi[1010];int n;void calc(int x){ for (int ...
分类:
其他好文 时间:
2014-09-09 11:06:38
阅读次数:
158
题目大意:给定n,求Σgcd(i,n) (1
n
记fi为n的因数,则Σgcd(i,n)=Σphi(n/fi)*fi
记住分解因数和分解质数时都要用O(√n)的方法 不然准T
然后2^32-1不是质数 找质数验证的时候试试2147483647吧
#include
#include
#include
#include
#define M 10010
using namespace std;...
分类:
其他好文 时间:
2014-09-07 14:48:55
阅读次数:
344
不知道哪里错了,测试了几十组数据均正确。。。可以找出规律,指数的增长是兔子数列。这个数列,是可以用矩阵快速幂得到的,见POJ 3070然后,竟然有一条公式:A^B%C = A^(B%phi(C)+phi(C))%C然后就可以求解了#include #include #include #include...
分类:
其他好文 时间:
2014-08-31 21:25:21
阅读次数:
195
题目来源:POJ 2480 Longge's problem
题意:求i从1到n的gcd(n, i)的和
思路:首先如果m, n 互质 gcd(i, n*m) = gcd(i, n)*gcd(i, m) 这是一个积性函数积性函数的和还是积性函数
由欧拉函数知识得 phi(p^a) = p^a - p^(a-1) p是素数 a是正整数
得到最终答案f(n) = f(p1^a1...
分类:
其他好文 时间:
2014-08-30 11:17:49
阅读次数:
168
这题 其实我觉得并不是那么容易想到欧拉函数的 但又很容易让你去联想他 因为题目的条件有点感觉适合擦 这句话 好矛盾啊...有一点 很重要 这题 很容易因为背景是gcd的 让你去想 一定要用到gcd函数=-=一开始 我走上了歧途 还好 看了下 数据太大了..10E啊我们都知道 phi( x )求出的是...
分类:
其他好文 时间:
2014-08-30 02:23:18
阅读次数:
298