大型网站开发企业,怎么用WordPress搜索别人,wordpress观点,国外中文网站排行榜单正题
题目链接:https://loj.ac/p/6053 题目大意
定义一个积性函数f(pc)pxorcf(p^c)p\ xor\ cf(pc)p xor c#xff0c;求∑i1nf(i)\sum_{i1}^nf(i)∑i1nf(i) 解题思路
异或这个东西不太好搞#xff0c;要考虑怎么求出ggg数组。
当ppp为质数时f(p)p−1f(p)p-1f(p)p−1pxorcf(p^c)p\ xor\ cf(pc)p xor c求∑i1nf(i)\sum_{i1}^nf(i)∑i1nf(i) 解题思路
异或这个东西不太好搞要考虑怎么求出ggg数组。
当ppp为质数时f(p)p−1f(p)p-1f(p)p−1所以我们让g(n)∑i1n[i∈Pri](i−1)g(n)\sum_{i1}^n[i\in Pri](i-1)g(n)∑i1n[i∈Pri](i−1)就好了。
然后因为i−1i-1i−1不是完全积性函数所以拆成iii和111分开来就好了。
然后因为f(2)3f(2)3f(2)3所以答案会少222加回去就好了。 code
#includecstdio
#includecstring
#includealgorithm
#includecmath
#define ll long long
using namespace std;
const ll N1e610,P1e97;
ll n,T,cnt,tot,w[N],pri[N],sp[N],g1[N],g2[N],ind1[N],ind2[N];
bool v[N];
void init(ll n){for(ll i2;in;i){if(!v[i]){pri[cnt]i;sp[cnt]sp[cnt-1]i;}for(ll j1;jcnti*pri[j]n;j){v[i*pri[j]]1;if(i%pri[j]0)break;}}return;
}
ll S(ll x,ll y){if(pri[y]x)return 0;ll pos(xT)?ind2[n/x]:ind1[x];ll ans((g2[pos]-g1[pos])-(sp[y]-y)P)%P;if(y0)ans2;for(ll ky1;kcntpri[k]*pri[k]x;k)for(ll e1,ppri[k];px;pp*pri[k],e)(ans(pri[k]^e)*(S(x/p,k)(e!1))%P)%P;return ans;
}
signed main()
{scanf(%lld,n);if(n1)return puts(1)0;Tsqrt(n);init(T);for(ll l1,r;ln;lr1){ll xn/l;rn/(n/l);w[tot]x;x%P;g1[tot]x-1;g2[tot]x*(x1)/2%P-1;if(n/lT)ind1[n/l]tot;else ind2[n/(n/l)]tot;}for(ll i1;icnt;i)for(ll j1;jtotpri[i]*pri[i]w[j];j){ll kw[j]/pri[i];k(kT)?ind2[n/k]:ind1[k];(g2[j]P-(g2[k]-sp[i-1])*pri[i]%P)%P;(g1[j]P-(g1[k]-i1)%P)%P;}printf(%lld\n,S(n,0)1);return 0;
}