HYSBZ 2818 莫比乌斯反演

传送门

莫比乌斯反演的入门题,

设 F(x):gcd(i,j)%x=0 的对数  f(x):gcd(i,j)=x 的对数。

易知 F(p)=\left \lfloor \frac{n}{p} \right \rfloor * \left \lfloor \frac{n}{p} \right \rfloor

 

F(x)=\sum_{x|d}f(d)

根据莫比乌斯反演得,f(x)=\sum_{x|d}u(\frac{d}{x})F(d)

 

#include
#include
#include
#include
#include
#define ll long long
using namespace std;
const int N=1e7+10;
int tot=0;
ll mu[N],vis[N],prime[N];
void init()
{
    mu[1]=1;
    for(int i=2;i>n;
    ll ans=0;
    for(int i=1;i<=tot&&prime[i]<=n;i++)
    {
        ans+=cal(n/prime[i]);
    }
    cout<

 

你可能感兴趣的:(数论)