51nod1355 斐波那契的最小公倍数
来源:互联网 发布:淘宝查销售额 编辑:程序博客网 时间:2024/06/06 20:24
首先我们可以知道
令
复杂度
#include<cstdio>#include<algorithm>using namespace std;#define LL long longconst int maxm=1000010,maxn=50010,p=1000000007;int f[maxm],g[maxm],a[maxn],vis[maxm],n,m;int inc(int x,int y){ x+=y; return x>=p?x-p:x;}int pow(int b,int k){ int r=1; for (;k;k>>=1,b=(LL)b*b%p) if (k&1) r=(LL)r*b%p; return r;}int main(){ int x,ans=1; scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]),m=max(m,a[i]); f[1]=g[1]=1; for (int i=2;i<=m;i++) f[i]=g[i]=inc(f[i-1],f[i-2]); for (int i=1;i<=m;i++) { x=pow(g[i],p-2); for (int j=i*2;j<=m;j+=i) g[j]=(LL)g[j]*x%p; } for (int i=1;i<=n;i++) for (int j=1;(LL)j*j<=a[i];j++) if (a[i]%j==0) vis[j]=vis[a[i]/j]=1; for (int i=1;i<=m;i++) if (vis[i]) ans=(LL)ans*g[i]%p; printf("%d\n",ans);}
阅读全文
0 0
- [51nod1355]斐波那契的最小公倍数
- 51nod1355 斐波那契的最小公倍数
- [数论 斐波那契] 51nod1355. 斐波那契的最小公倍数
- 1355 斐波那契的最小公倍数
- 51nod 1355 斐波那契的最小公倍数
- 51nod 1355 斐波那契的最小公倍数
- 51Nod-1355-斐波那契的最小公倍数
- 51Nod 1355 斐波那契的最小公倍数
- [反演 数论] 51Nod 1355 斐波那契的最小公倍数
- 51nod 1355 斐波那契的最小公倍数 (数论+莫比乌斯反演)
- [莫比乌斯反演] 51Nod 1355 斐波那契的最小公倍数
- 51nod 1355 斐波那契的最小公倍数 莫比乌斯反演+数学
- java求最大公约数,最小公倍数,斐波那契数列
- 51nod1195斐波那契数列的循环节
- 斐波那契堆的实现
- 有趣的斐波那契数列
- 斐波那契函数的优化
- 斐波那契的递归算法
- android studio 图标制作
- JSP基本语法 、 JSP运行原理
- IOS 制作app 预览视频
- 关闭CentOS7的firewalld并启用iptables操作
- Web.xml配置详解之context-param
- 51nod1355 斐波那契的最小公倍数
- 动态规划——openjudge7624山区建小学
- vbscript管理磁盘文档目录
- 数据结构(二)——队列
- 架构和设计有什么区别?
- 环形单链表的约瑟夫问题
- tensorflow中tf.maximum,tf.minimum,tf.argmax,tf.argmain的对比
- linux内核移植
- GreenDao的简单使用