详情见代码,回头再填坑。。。

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define int long long
#define p 1000000007
using namespace std;
int n,m;
int phi[],su[],pr[],cnt;
void shai()
{
phi[]=;
for(int j=;j<=;j++)
{
if(!phi[j])phi[j]=j-,su[++cnt]=j,pr[j]=j;
for(int i=;su[i]<=pr[j]&&i<=cnt&&su[i]*j<=;i++)
{
pr[su[i]*j]=su[i];
if(!phi[su[i]*j])phi[su[i]*j]=su[i]*j;
if(su[i]==pr[j])phi[su[i]*j]=phi[j]*su[i];
else phi[su[i]*j]=phi[j]*(su[i]-);
}
}
}
signed main()
{
shai();
scanf("%lld%lld",&n,&m);
int ans=;
ans+=n*(n-)*(n-)*m/;ans%=p;
ans+=m*(m-)*(m-)*n/;ans%=p;
int tmp=;
for(int i=;i<=min(n-,m-);i++)tmp=(tmp+m*n%p*phi[i]*((n-)/i)%p*((m-)/i))%p;
for(int i=;i<=min(n-,m-);i++)tmp=(tmp+phi[i]*i%p*i%p*(((n-)/i)*(+(n-)/i)/)%p*(((m-)/i)*(+(m-)/i)/)%p)%p;
for(int i=;i<=min(n-,m-);i++)tmp=(tmp-n*phi[i]%p*i%p*((n-)/i)%p*((((m-)/i)*(+(m-)/i)/)%p)%p+p)%p;
for(int i=;i<=min(n-,m-);i++)tmp=(tmp-m*phi[i]%p*i%p*((m-)/i)%p*((((n-)/i)*(+(n-)/i)/)%p)%p+p)%p;
tmp-=((+n-)*(n-)/)%p*((+m-)*(m-)/)%p;tmp=(tmp+p)%p;
ans=(ans+tmp*)%p;
printf("%lld\n",ans);
return ;
}

最新文章

  1. Android 天气曲线
  2. wordpress后台打开慢/卡顿的解决方法
  3. SQLite简介
  4. 在C语言控制台程序中播放MP3音乐
  5. GitHub删除文件
  6. TFS实现需求工作项自动级联保存
  7. 利用AD采集获取外部温度传感器的值
  8. Java判断水仙花数
  9. springboot使用内部tomcat启动和外部tomcat启动的区别
  10. 【XSY2523】神社闭店之日 莫比乌斯反演
  11. java集合 线程安全
  12. 在屏幕拖拽3D物体移动
  13. Java+selenium 爬Boss直聘中职位信息,薪资水平和职位描述
  14. Page Cache, the Affair Between Memory and Files.页面缓存-内存与文件的那些事
  15. 671. Second Minimum Node In a Binary Tree
  16. Guideline 2.1 - Information Needed
  17. 廖雪峰Java1-2程序基础-5浮点数运算
  18. 处理No CPU/ABI system image for target的方法
  19. Velocity工作原理解析和优化
  20. amazeui笔记-web组件

热门文章

  1. Memcached和Memcache安装(64位win7)
  2. script和href
  3. winform程序重启
  4. How to regress out unwanted vectors
  5. ELK+FileBeat+Log4Net
  6. font和lineheight冲突。
  7. 【Alpha版本】十天冲刺集结令
  8. X240s安装Win7 以及如何启用ExpressCache
  9. Android开发之AutoCompleteTextView的简单使用
  10. Change Eclipse Tooltip&#39;s Color in Ubuntu