首页 > 代码库 > BZOJ 4173 数论
BZOJ 4173 数论
思路:
$(m%k+n%k>=k) *phi(k)$
$我们不妨设n=q_1k+r_1 m=q_2k+r$2
$n+m=(q_1+q_2)k+r1+r2$
${\lfloor}\frac{n+m}{k}{\rfloor}-{\lfloor}\frac{m}{k}{\rfloor}-{\lfloor}\frac{n}{k}{\rfloor}=(m%k+n%k>=k)$
$原式=phi(k)*({\lfloor}\frac{n+m}{k}{\rfloor}-{\lfloor}\frac{m}{k}{\rfloor}-{\lfloor}\frac{n}{k}{\rfloor})$
$id=phi|1$
$n=\Sigma_{d|n}phi(d)$
$原式=\Sigma_{i=1}^{n+m}i-\Sigma_{i=1}^mi-\Sigma_{i=1}^ni$
$ =(n+m)*(n+m-1)/2+m*(m-1)/2+n*(n-2)/2$
$ =n*m$
//By SiriusRen#include <cstdio>using namespace std;typedef long long ll;ll n,m,mod=998244353;ll phi(ll x){ ll res=1; for(int i=2;1LL*i*i<=x;i++){ if(x%i==0){ while(x%i==0)x/=i,res=res*i; res=res/i*(i-1); } }if(x!=1)res=res*(x-1); return res;}int main(){ scanf("%lld%lld",&n,&m); printf("%lld\n",((((phi(n)%mod)*(phi(m)%mod))%mod*(n%mod))%mod*(m%mod))%mod);}
BZOJ 4173 数论
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。