求[1,n]中与m互素的个数

void dfs(int d, ll num, int z) {
    if (d>cnt) {
        if (num!=1) ans+=z*n/num;
    }   
    else { 
        dfs(d+1,num*p[d],-z);
        dfs(d+1,num,z);
    }   
}
ll solve(ll x) {
    ans = 0, n = x, dfs(1,1,1);
    return n+ans;
}

猜你喜欢

转载自www.cnblogs.com/uid001/p/10741835.html