HDU-4059 The Boss on Mars(反演)


HDU-4059 The Boss on Mars







#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
const int inv=233333335;
typedef long long ll;
ll f(ll n){
    ll ans=n*(n+1)%mod*(2LL*n+1)%mod;
    ll x=(3LL*n*n%mod+3LL*n-1)%mod*inv%mod;
    return ans*x%mod;
}
int mu(ll n){
    if(n==1)return 1;
    int cnt=0;
    for(int i=2;1LL*i*i<=n;i++){
        if(n%i==0){
            cnt++;
            n/=i;
            if(n%i==0)return 0;
        }
    }
    if(n>1)cnt++;
    return cnt%2==1?-1:1;
}
ll cal(ll n,ll d){
    ll res=d*d%mod;
    res=res*res%mod;
    ll ans=f(n/d)*res%mod*mu(d);
    ans=(ans+mod)%mod;
    return ans;
}
int main(){
    int t;
    cin>>t;
    while(t--){
        int n;
        scanf("%d",&n);
        ll ans=0;
        for(int i=1;1LL*i*i<=n;i++){
            if(n%i==0){
                ans+=cal(n,i);
                if(ans>=mod)ans-=ans/mod*mod;
                if(i!=n/i)ans+=cal(n,n/i);            
                if(ans>=mod)ans-=ans/mod*mod;
            }
        }
        printf("%lld\n",ans);
    }    
}

全部评论

相关推荐

01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
已经准备八股(过了一遍)、算法(不太充分,目前只做了30道),中小厂的话有希望吗
King987:项目经历我觉得可以再改改,像bit map存储,用户签到,threadlocal存储上下文信息这些功能都是比较基础的,体现不出什么难点。这也让面试官不太好问,建议自己简单包装一下,虽然面试官也能看出来,但他至少有的问,包装不好可以聊我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务