(分解质因数模板)求 1~r 内与 n 互素的元素个数

Posted Kurokey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(分解质因数模板)求 1~r 内与 n 互素的元素个数相关的知识,希望对你有一定的参考价值。

 1 void Solve(LL n){   ///分解质因数保存结果于p
 2     p.clear();
 3     for(LL i=2; i*i<=n; i++)
 4         if(n%i==0){
 5             p.push_back(i);
 6             while(n%i==0) n/=i;
 7         }
 8     if(n>1) p.push_back(n);
 9 }
10 
11 void dfs(LL k,LL t,LL s,LL n){ ///求与n互素个数
12     if(k==p.size()){
13         if(t&1) ans-=n/s;
14         else    ans+=n/s;
15         return;
16     }
17     dfs(k+1,t,s,n);
18     dfs(k+1,t+1,s*p[k],n);
19 }
20 ///主函数内是:
21 dfs(0,0,1,r);

 

以上是关于(分解质因数模板)求 1~r 内与 n 互素的元素个数的主要内容,如果未能解决你的问题,请参考以下文章

Uva10820 欧拉公式模板(求小于n且与n互素的数的个数)

hdu 4235 容斥原理模板题

POJ2773 Happy 2006容斥原理

HDU 4135 Co-prime(容斥:二进制解法)题解

欧拉函数

欧拉函数