首页 > 其他分享 >Sum of (-1)^f(n)

Sum of (-1)^f(n)

时间:2023-07-20 18:47:05浏览次数:24  
标签:limits int Sum mid 积性 sum

煎蛋提。

不妨令 \(g(i)=(-1)^{f(i)}\),由 \(f(i)\) 的和性不难推出 \(g(i)\) 为完全积性函数,因此可以考虑杜教筛。

考察 \(g(n)\) 和恒等函数 \(I(n)=1\) 的卷积 \(g*I\),不难发现 \((g*I)(p^k)=\sum\limits_{i=0}^kg(p^i)=\sum\limits_{i=0}^k(-1)^i=[2\mid i]\),又由于 \(g*I\) 为积性函数,有 \((g*I)(n)=(g*I)(p_1^{q_1}p_2^{q_2}\cdots p_m^{q_m})=[2\mid q_1][2\mid q_2]\cdots [2\mid q_m]=\prod\limits_{i=1}^m[2\mid q_i]\),也就是说 \((g*I)(n)=[\exists k\in \mathbb{N^*},n=k^2]\),也就是 \(n\) 为完全平方数

于是 \(\sum\limits_{i=1}^n(g*I)(n)=\left\lfloor\sqrt{n}\right\rfloor\),简单筛一下即可。

const int N = 2.5e7 + 250;
int n, lim, tot, vs[N], f[N], pr[N];
map<int, int> s;

void init(int lim) {
    f[1] = 1;
    for (int i = 2; i <= lim; i++) {
        if (!vs[i]) pr[++tot] = i, f[i] = -1;
        for (int j = 1; j <= tot && i * pr[j] <= lim; j++) {
            f[i * pr[j]] = -f[i], vs[i * pr[j]] = 1;
            if (i % pr[j] == 0) break;
        }
    }
    for (int i = 2; i <= lim; i++)
        f[i] += f[i - 1];
}

int S(int x) {
    if (x <= lim) return f[x];
    if (s[x]) return s[x];
    int res = sqrt(x);
    for (int l = 2, r; l <= x; l = r + 1) 
        r = x / (x / l), res -= (r - l + 1) * S(x / l);
    return s[x] = res;
}

signed main() {
    n = rd(), init(lim = pow(n, 2. / 3));
    wr(S(n));
    return 0;
}

标签:limits,int,Sum,mid,积性,sum
From: https://www.cnblogs.com/Ender32k/p/17569357.html

相关文章

  • ARC145F Modulo Sum of Increasing Sequences
    为数不多不用多项式科技的单位根反演题。\(A\)不降比较难搞,所以首先令\(B_i=A_i+i-1\),则\(B\)单调递增。转化为对任意的\(k\in[0,\text{MOD}-1]\),求在\([0,N+M-1]\)中选\(N\)个不同的数,总和对\(\text{MOD}\)取模为\(k\)的方案数。记\(p=\text{MOD},n=N+M\)。列出......
  • sum
    sum计算文件的校验码和显示块数补充说明sum命令用于计算并显示指定文件的校验和与文件所占用的磁盘块数。语法sum(选项)(参数)选项-r:使用BSD的校验和算法,块大小为1k;-s:使用systemV的校验和算法,块大小为512字节。参数文件列表:需要计算和与磁盘块数的文件列表。实例......
  • Atcoder Grand Contest 057 D - Sum Avoidance
    先来找些性质:\(A\)中最小的元素\(M\)肯定是最小的不是\(S\)的因子的数,由于\(\text{lcm}(1,2,3,\cdots,43)>10^{18}\),所以\(M\le43\)。对于每个\(0\lei<M\),\(\bmodM=i\)的数被选择的部分必然是一段后缀,因为如果你选择了\(M\)选择了某个\(\bmodM=i\)的数\(v\),......
  • EXCEL的SUMIF公式
    我通过简单的案例来做演示SUMIF(参数1,参数2,参数3)    图1为sheet1                                  图2为sheet2该案例如果要计算图一中各个订单号下的数量总和参数1:需要被匹配的数据源参数2:......
  • X-Camp 2023 Summer Training 做题泛记
    由于我懒,本Blog只记录暑期集训的难题&趣题,当然大部分难题我都不会做。\(\textbf{D1T2}\)很奇妙的一题,不过我不会。可以看xhgua的博客。\(\textbf{D5T3}\)模拟赛放Ynoi,兄弟。\(\textbf{D5T3.1Description}\)实现一个数据结构,要求实现三个操作:在图中将两个点连边;回......
  • Mysql sum 返回了字符串
    Mysqlsum返回了字符串在Mysql数据库中,SUM函数用于计算数值型列的总和。然而,有时候我们会遇到SUM函数返回字符串的情况,这可能会导致数据处理和分析的问题。在本篇文章中,我们将讨论为什么SUM函数会返回字符串以及如何解决这个问题。为什么SUM函数返回字符串?当SUM函数......
  • 常用的统计数学函数:sum, sd, mean, cv
    /************************************************************************@filemath.h*@ingroupmath*@authorwangqing*@date2020-05-14*@brief常用统计计算***********************************************************************/#ifndef__MATH_......
  • [LeetCode] 2461. Maximum Sum of Distinct Subarrays With Length K
    Youaregivenanintegerarray nums andaninteger k.Findthemaximumsubarraysumofallthesubarraysof nums thatmeetthefollowingconditions:Thelengthofthesubarrayis k,andAlltheelementsofthesubarrayare distinct.Return themaxim......
  • poj 1844 sum (数学)
    题意:给出一个数S,从1到N个数,每个数前面可以是负号或者是正号,这样累加起来,结果可以等于S,问最小的N是多少。题解:因为从1一直加到n的值(假设为sum(n))等于sum的n是最小的。所以我们先算出sum(n)大于等于sum的那个n。这样我们可以得出一个值m=sum(n)-sum.如果m==0那么n就是我们要求的......
  • SMU Summer 2023 Contest Round 4
    SMUSummer2023ContestRound4A-TelephoneNumber思路:满足有8,且8后有大于等于11个数#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongtypedefpair<int,int>PII;typedefpair<string,int>PSI;typedefpair<char,int>PCI;type......