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

时间:2024-04-14 18:42:55
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;
}

相关文章