Trees in a Wood. UVA - 10214 (gcd+欧拉函数)

Trees in a Wood. UVA - 10214 (gcd+欧拉函数)_第1张图片

Trees in a Wood. UVA - 10214 (gcd+欧拉函数)_第2张图片 

#include
using namespace std;

typedef long long ll;

/*
1.要统计的点的特点     gcd(x,y)=1
2.
   (1).怎样快速的统计(x*y)*4 个点的gcd()     遍历是不可能遍历的,用到欧拉函数,phi(x)=小于等于x,且与x互质的数量,
   (2).欧拉函数只有yx的怎么办  再次注意gcd(a,b)=gcd(a%b,b),也就是说 a>b的情况,完全可以用小的情况判断出来
                                              直接a%b,就行了,所以只需要判断最后剩下的那几个[1,a%b],与y互质的数量就行了
gcd()的优良性质,可以把大于b的情况,转换为小于b的情况,和上一道题,很像,只是比较裸,那个只是会整除,不会出现余数的情况
那道题还要推导阶乘的phi()的关系
*/

const int maxn=2010;
ll phi[maxn];

void get_phi(){
    phi[1]=1;
    for(int i=1;i

 

你可能感兴趣的:(【ACM-数论】,....欧拉,....欧拉函数,.....扩展欧几里得)