您的位置:首页 > 其它

[BZOJ4173]数学(数论)

2017-03-02 10:54 169 查看

题目描述

传送门

题解

实际上答案就是φ(n)∗φ(m)∗n∗m

因为规律真心好找…

不过据说∑k∈S(n,m)φ(k)=n∗m是可以证明的,但是我目前还不会。。可能需要想很久也不一定能想出来,以后再补吧。

代码

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
#define LL long long
#define Mod 998244353

LL n,m,ans;

LL phi(LL x)
{
LL ans=x;
for (LL i=2LL;i*i<=x&&x>1LL;++i)
if (x%i==0)
{
ans=ans-ans/i;
while (x%i==0) x/=i;
}
if (x>1LL) ans=ans-ans/x;
return (ans%Mod+Mod)%Mod;
}
int main()
{
scanf("%lld%lld",&n,&m);
ans=phi(n)*phi(m)%Mod;
n%=Mod,m%=Mod;
ans=ans*n%Mod*m%Mod;
printf("%lld\n",ans);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: