传送门

不会……

两篇加在一起都看不懂……

https://www.cnblogs.com/cellular-automaton/p/8241128.html

https://www.luogu.org/blog/cjyyb/solution-p3768

 //minamoto
#include<iostream>
#include<cstdio>
#include<map>
#define ll long long
using namespace std;
const int N=4e6+;
map<ll,ll> mp;
ll sum[N],phi[N],pri[N],cnt,vis[N],mod6,mod;
//mod是2的逆元,mod6是6的逆元
void init(ll p){
vis[]=sum[]=;
for(int i=;i<N;++i){
if(!vis[i]) pri[++cnt]=i,phi[i]=i-,sum[i]=1ll*i*i%p*phi[i]%p;
for(int j=;j<=cnt,i*pri[j]<N;++j){
vis[i*pri[j]]=;
int now=i*pri[j];
if(i%pri[j]==){
phi[now]=phi[i]*pri[j]%p;
sum[now]=phi[now]*now%p*now%p;
break;
}
phi[now]=phi[i]*(pri[j]-)%p;
sum[now]=phi[now]*now%p*now%p;
}
}
for(int i=;i<N;++i) (sum[i]+=sum[i-])%=p;
}
ll ksm(ll x,ll y,ll p){
ll res=;
while(y){
if(y&) (res*=x)%=p;
(x*=x)%=p,y>>=;
}
return res;
}
ll calc(ll n,ll p){
n%=p;
ll res=((+n)*n%p)*mod%p;
(res*=res)%=p;
return res;
}
ll calcs(ll n,ll p){
n%=p;
ll res=(n*(n+)%p)*(*n+)%p;
(res*=mod6)%=p;
return res;
}
ll calcsum(ll n,ll p){
if(n<N) return sum[n];
if(mp.count(n)) return mp[n];
ll x=,res=calc(n,p);
while(x<=n){
ll y=n/(n/x);
res=((res-(calcs(y,p)-calcs(x-,p)+p)%p*calcsum(n/x,p)%p)+p)%p;
x=y+;
}
return mp[n]=res;
}
int main(){
// freopen("testdata.in","r",stdin);
ll p,n;
scanf("%lld%lld",&p,&n);
mod=ksm(,p-,p),mod6=ksm(,p-,p);
init(p);
ll x=,ans=;
while(x<=n){
ll y=n/(n/x);
(ans+=((calcsum(y,p)-calcsum(x-,p)+p)%p*calc(n/x,p)%p))%=p;
x=y+;
}
printf("%lld\n",ans);
return ;
}

最新文章

  1. ASP.NET OWIN OAuth:遇到的2个refresh token问题
  2. EF架构~EF异步改造之路~仓储接口的改造
  3. mysql 行锁一则
  4. PRML读书会第二章 Probability Distributions(贝塔-二项式、狄利克雷-多项式共轭、高斯分布、指数族等)
  5. Swift闭包
  6. Asianux3配置yum
  7. Hadoop学习总结之二:HDFS读写过程解析
  8. QC开发只能修改指派给自己的缺陷,而其他的bug可以查看但是不允许修改
  9. leetcode面试准备:Triangle
  10. thinkphp中使用PHPEXCEL导出数据
  11. 针对Oracle数据库中SCOTT方案的多表查询一个例子
  12. 转换Json中的时间戳为标准时间格式
  13. IBM的websphere MQ的c#使用
  14. Oracle DB 总结(SQL)
  15. Java入门细则
  16. activeMQ (一)
  17. [转]win10中安装JDK8以及环境配置
  18. vs下开发windows服务程序
  19. Codeforces Round #441 D. Sorting the Coins(模拟)
  20. 索引视图DEMO1

热门文章

  1. CUDA: 常量内存与事件
  2. Java for LeetCode 081 Search in Rotated Sorted Array II
  3. iOS 分享功能开发
  4. spring-boot3代码
  5. [LeetCode] 698. Partition to K Equal Sum Subsets
  6. HTML5_CSS3仿Google Play垂直菜单
  7. 算法(Algorithms)第4版 练习 1.3.25 1.3.24
  8. vue 升降排序
  9. 在PyCharm上创建Django项目
  10. ACM学习历程—BestCoder 2015百度之星资格赛1006 单调区间(组合数学)