http://www.51nod.com/onlineJudge/questionCode.html#!problemId=2026

参考及推导:https://www.cnblogs.com/ivorysi/p/9157781.html

(其公式有一处小问题,请注意。)

然后就没了……我觉得讲得挺详细了。

另外map跑得可能比哈希表还快可还行。

#include<map>
#include<cmath>
#include<stack>
#include<queue>
#include<cstdio>
#include<cctype>
#include<vector>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int p=1e9+7;
const int N=31623;
const int M=2e6+5;
const int MOD=9747111;
const int INV=500000004;
inline int read(){int X=0,w=0;char ch=0;while(!isdigit(ch)){w|=ch=='-';ch=getchar();}while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X;
}
struct node{int to,nxt,w;
}e[M];
bool he[N+5];
int su[N+5],tot,cnt,head[MOD+5],mu[N+5],sum[N+5];
inline void add(int v,int w){int u=v%MOD;e[++cnt].to=v;e[cnt].w=w;e[cnt].nxt=head[u];head[u]=cnt;
}
inline int query(int v){int u=v%MOD;for(int i=head[u];i;i=e[i].nxt)if(v==e[i].to)return e[i].w;return -1;
}
inline int sub(int a,int b){a-=b;if(a<0)a+=p;if(a>=p)a-=p;return a;
}
inline int inc(int a,int b){a+=b;if(a<0)a+=p;if(a>=p)a-=p;return a;
}
inline int AP(int l,int r){return (ll)inc(l,r)*sub(r+1,l)%p*INV%p;
}
void Euler(int n){mu[1]=1;for(int i=2;i<=n;i++){if(!he[i]){su[++tot]=i;mu[i]=-1;}for(int j=1;j<=tot&&i*su[j]<=n;j++){int pri=su[j];he[i*pri]=1;if(i%pri==0){mu[i*pri]=0;break;}else mu[i*pri]=mu[i]*mu[pri];}}for(int i=1;i<=n;i++)sum[i]=inc(sum[i-1],mu[i]*i);
}
int S(int n){if(n<=N)return sum[n];int tmp=query(n);if(tmp!=-1)return tmp;int ans=0;for(int i=2,j;i<=n;i=j+1){j=n/(n/i);ans=inc(ans,(ll)AP(i,j)*S(n/i)%p);}ans=sub(1,ans);add(n,ans);return ans;
}
int main(){Euler(N);int n=read(),ans=0;for(int i=1,j;i<=n;i=j+1){j=n/(n/i);ans=inc(ans,(ll)sub(S(j),S(i-1))*(n/i)%p);}printf("%lld\n",(ll)ans*ans%p);return 0;
}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/9159436.html

51NOD 2026:Gcd and Lcm——题解相关推荐

  1. 51nod 1575 Gcd and Lcm

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1575 万年巨坑终于填掉了-- 首先是煞笔西瓜的做题历程O_O. ...

  2. C. Orac and LCM(gcd与lcm的性质)

    Problem - 1350C - Codeforces 题意: 对于正整数的多集合s={s1,s2,...,sk},定义s的最大公除数(GCD)和最小公倍数(LCM)如下. gcd(s)是最大的正整 ...

  3. (gcd,lcm,互质) 康纳的表情包--SDUT,Wolf and Rabbit--HDOJ

    做题的时候,经常会看到题目给出两个数,让你规则计算一些东西,大多数情况下,都是往gcd 和 lcm这方面靠,寻求解决的方法,事实也就是这样,但是,至于为什么要求gcd和lcm,我就不明白了,以至于到现 ...

  4. 数论(一)——素数,GCD,LCM

    这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...

  5. hdu-4497 GCD and LCM

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4497 题目大意: 给出三个数的gcd和lcm,求出这三个数有多少种可能性 解题思路: 设lcm / ...

  6. 已知gcd和lcm求a+b最小和?------数论

    题意 给出2个数a,b的 gcd(最大公约数n) 和 lcm(最小公倍数m),求所有符合条件的a,b中, 的最小 值. 思路 暴力枚举.根据 gcd(a,b)lcm(a,b)=ab 我们可以得到 ab ...

  7. GCD and LCM Aizu - 0005(辗转相除)+GCD LCM Inverse POJ - 2429(java或【Miller Rabin素数測试】+【Pollar Rho整数分解】)

    题目:GCD and LCM Aizu - 0005 Write a program which computes the greatest common divisor (GCD) and the ...

  8. 1575 Gcd and Lcm

    1575 Gcd and Lcm ∑i=1n∑j=1i∑k=1ilcm(gcd(i,j),gcd(i,k))设f(n)=∑i=1n∑j=1nlcm(gcd(i,n),gcd(j,n))f(p)=3p2 ...

  9. 【dfs】GCD与LCM(jzoj 1608)

    GCD与LCM 题目大意: 给出a,b的最大公因数和最小公倍数,求出符合条件的a,b的最小差值 样例输入 6 36 样例输出 6 数据范围限制 提示 数据说明: 对于50%的数据,1<=a< ...

最新文章

  1. 常用免费精品Web应用列表(转)
  2. Theme.NoTitleBar问题
  3. cmake 静态编译 简介
  4. 数据库70多张表设计的一些思考…
  5. C++ 获取函数耗时
  6. 某大学强制全员申报国自然,不提交就扣奖金!
  7. 【服务器】挖矿病毒 kdevtmpfsi(一针见效)
  8. Qt4_改变形状的对话框
  9. java horizontalbarchart_Android-MPChart,HorizontalBarChart 水平柱状图颜色渐变
  10. 球球大作战代点链接源码c语言,最新球球大作战代点源码无加密开源-球球大作战一天刷100个棒棒糖和刷龙蛋200个源码下载免费版-西西软件下载...
  11. 软件质量保障之代码走查
  12. 魔域mysql下载_魔域单机版下载-魔域单机版 登录补丁+私服补丁+SQL下载 (附GM命令大全)-KK下载站...
  13. Java人事管理系统设计
  14. 图片标注软件labelImg使用指南
  15. 盗版不需要考虑,直接企业版(Enterprise)走起?
  16. linux 查看设备挂载信息
  17. 摆弄教研室的服务器,为教研室写服务器使用指南的时候记录下的一些linux知识
  18. CSS浮动与定位 逆战班
  19. cad图形不见了怎么办_CAD全图缩放后图纸不见了或者变成了小点怎么办
  20. 2019,被催更了!2020,干就是了!

热门文章

  1. Python3爬虫入门之beautifulsoup库的使用
  2. Ubuntu下MySQL root密码忘记的解决方法
  3. vue自定义组件是.vue还是html,Vue自定义组件的四种方式示例详解
  4. 最快学习之Vue Route
  5. Hibernate基于Maven入门实例,与MyBatis比对
  6. html 文字中不换行怎么写,HTML让字体在一行内显示不换行
  7. 引入dubbo项目接口_dubbo接口调用过程中,部分字段值丢失
  8. 无线移动通信—文章导航
  9. 全局变量定义的时候左侧加了static_c语言中static 用法
  10. SpringBoot项目在启动时出现了Cannot determine embedded database driver class for database type NONE 错误