结论:fj∣fif_j|f_ifj​∣fi​ 等价于 j∣ij|ij∣i。

证明:(来自DTZ巨佬)


于是询问就变成了求一个数的因数个数和因数的平方和。

设 x=p1k1p2k2⋯pmkmx=p_1^{k_1}p_2^{k_2}\cdots p_m^{k_m}x=p1k1​​p2k2​​⋯pmkm​​。

那么 xxx 的因数个数为 ∏i=1m(ki+1)\prod\limits_{i=1}^m(k_i+1)i=1∏m​(ki​+1),因数平方和为 ∏i=1m∑j=0kipi2j\prod\limits_{i=1}^m\sum\limits_{j=0}^{k_i}p_i^{2j}i=1∏m​j=0∑ki​​pi2j​。

用线性筛求解,有一个小 trick 是记录一个数 xxx 除尽其最小质因子后的数 nop(x)nop(x)nop(x),具体实现过程详见代码。

#include<bits/stdc++.h>#define N 10000010using namespace std;namespace modular
{const int mod=1000000007;inline int add(const int x,const int y){return x+y>=mod?x+y-mod:x+y;}inline int dec(const int x,const int y){return x-y<0?x-y+mod:x-y;}inline int mul(const int x,const int y){return 1ll*x*y%mod;}
}using namespace modular;inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^'0');ch=getchar();}return x*f;
}int q,a,b,c;
int cnt,prime[N];
int nop[N],s1[N],s2[N];
bool notprime[N];void init()
{s1[1]=1,s2[1]=1;for(int i=2;i<=c;i++){if(!notprime[i]){prime[++cnt]=i;nop[i]=1;s1[i]=2;s2[i]=add(mul(i,i),1);}for(int j=1,x;j<=cnt&&(x=(i*prime[j]))<=c;j++){notprime[x]=1;if(!(i%prime[j])){nop[x]=nop[i];s1[x]=mul(s1[nop[i]],add(s1[i/nop[i]],1));s2[x]=mul(s2[nop[i]],add(mul(s2[i/nop[i]],mul(prime[j],prime[j])),1));break;}nop[x]=i;s1[x]=mul(s1[i],s1[prime[j]]);s2[x]=mul(s2[i],s2[prime[j]]);}}
}int main()
{q=read();int x=read();a=read(),b=read(),c=read();init();int ans1=0,ans2=0;while(q--){ans1=add(ans1,add(s1[x],(x&1)));ans2=add(ans2,add(s2[x],(x&1)*4));x=(1ll*x*a+b)%c+1;}printf("%d\n%d\n",ans1,ans2);return 0;
}
/*
2
2 2 1 8
*/

【BZOJ2813】奇妙的Fibonacci(结论,线性筛)相关推荐

  1. 【20181027T1】洛阳怀【推结论+线性筛+分解质因数+GCD性质】

    原题:CF402D [错解] 唔,先打个表看看 咦,没有坏质数好像就是质因数个数啊 那有坏质数呢? 好像变负数了 推出错误结论:f(x)=x的质因数个数,如果有个坏质数,就乘上-1 然后乱搞,起码花了 ...

  2. 【BZOJ2813】奇妙的Fibonacci

    Description ​ Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 . . . Fi = Fi-1 + Fi-2 (当 i >= 3) ​ pty忽 ...

  3. 洛谷 - P1217 [USACO1.5]回文质数 Prime Palindromes(欧拉线性筛+数论小知识)

    题目链接:点击查看 题目大意:给出一个a和b,求出区间[a,b]中所有回文质数,回文质数指的是一个数既是回文数也是质数 题目分析:首先质数好判断,我们只需要用欧拉筛预处理打好表即可,判断回文数我们也只 ...

  4. 【bzoj2693】jzptab 莫比乌斯反演+线性筛

    题目描述 输入 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M 输出 T行 每行一个整数 表示第i组数据的结果 样例输入 1 4 5 样例输出 122 题解 莫比乌斯反演+线性筛 由 ...

  5. 洛谷P2257 YY的GCD 莫比乌斯函数反演+线性筛

    洛谷P2257 YY的GCD 标签 莫比乌斯反演 线性筛 前言 这题貌似和莫反没多大关系,就是用到了一个莫比乌斯函数的性质了,其他就是推公式,优化和式. 我的第一道懵逼反演-真的好难好难-而且套路特别 ...

  6. 线性筛与欧拉函数、莫比乌斯函数

    网上关于素数筛的资料很多,这里只是给出弱鸟整理的几个线性筛和应用. 最朴素的素数筛--埃拉托斯特尼筛法(Sieve of Eratosthenes) 复杂度 Olognlogn int primes[ ...

  7. 积性函数的性质及证明 + 线性筛

    引言 在数论问题中,积性函数有着广泛的应用. 如在莫比乌斯反演问题中,函数变换之后如何快速维护前缀和往往是最重要也是最难的一步.如果维护的函数具有积性,那就可以尝试利用线性筛在O(n)O(n)O(n) ...

  8. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  9. 【bzoj2694】Lcm 莫比乌斯反演+线性筛

    题目描述 求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m|\mu(gcd(i,j))|lcm(i,j)$,即$gcd(i,j)$不存在平方因子的$lcm(i,j)$之 ...

  10. [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉

    本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉 题目大意 给定n,m,求在1到n!内与m!互质的 ...

最新文章

  1. Pokémon Go数据收集是否带来隐私问题
  2. 十一.python面向对象(接口)abstractmethod,ABCMeta
  3. avformat_find_stream_info 时间太长
  4. J2EE和Java EE
  5. [笔记] 分频计数(七)
  6. 021_jdbc-mysql入门
  7. Mybatis学习之配置优化
  8. IUnknown接口QueryInterface函数介绍
  9. 使用NPOI库导入导出EXCEL
  10. 深入react技术栈(3):React组件
  11. [html] H5页面在微信中如何禁止分享给好友和朋友圈?
  12. 还需要更多东西吗?这里有一些要做的事情
  13. Netty工作笔记0037---主从Reactor多线程
  14. 35岁以上还没结婚的男女们,过的如何?
  15. Java从入门到精通 第13章 抽象类与接口
  16. 使用web.xml控制Web应用的行为
  17. 中企海外周报 | 华为在德国发布mate30系列手机;一汽新车亮相法兰克福车展
  18. C 语言 随机prim算法 生成迷宫
  19. python列表按照长度排序_Python程序根据元素的长度对列表进行排序?
  20. BNUOJ 26474 Bread Sorting

热门文章

  1. matlab中ones函数的使用方法详细介绍(附matlab代码)
  2. 压缩包密码破解工具-ARCHPR
  3. 论文总结与展望怎么写?
  4. 计算机论文展望未来,【计算机】总结过去,展望未来
  5. http概述(相关详解)
  6. Retrofit(Okhttp)Dns解析服务器域名异常时尝试使用服务器IP访问
  7. 如何将mov格式转换成mp4并且不改变分辨率
  8. wow插件入门资源整理
  9. Null(空值)和 Undefined(未定义)
  10. 权限管理实现——权限过滤器