HDU6069Counting Divisors
来源:互联网 发布:yum clear命令 编辑:程序博客网 时间:2024/05/21 22:58
题目链接
题意
对于给定的
其中
分析
根据欧拉定理可以得到对于一个数
代码
#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;#define LL long longint isprime[1001000];const int mod=998244353;vector<int> prime;LL divi[1001000];LL res[1001000];int main(){ int T; for(int i=2;i<=1000;++i) if(!isprime[i]) for(int j=i*i;j<=1000000;j+=i) isprime[j]=1; for(int i=2;i<=1000000;++i) if(!isprime[i]) prime.push_back(i); cin>>T; while(T--){ LL l,r; int k; scanf("%I64d %I64d %d",&l,&r,&k); for(int i=0;i<=r-l;++i){ res[i]=l+i; divi[i]=1; } for(int i=0;i<prime.size();++i){ if(prime[i]>r) break; LL st=(l+prime[i]-1)/prime[i]*prime[i]; for(LL j=st;j<=r;j+=prime[i]){ int num=0,idx=j-l; while(res[idx]%prime[i]==0){ num++; res[idx]/=prime[i]; } num=(num*k+1); divi[idx]=(divi[idx]*num)%mod; } } LL ans=0; for(int i=0;i<=r-l;++i){ if(res[i]!=1) divi[i]=(divi[i]*(k+1))%mod; ans=(ans+divi[i])%mod; } printf("%I64d\n",ans); }}
阅读全文
0 0
- HDU6069Counting Divisors
- hdu6069Counting Divisors(约数个数定理)
- Divisors
- Divisors
- Divisors
- JOJ1716:Divisors
- UVa294 - Divisors
- pku2992 Divisors
- POJ2992 Divisors
- poj_2992 Divisors
- Common Divisors
- UVa294 Divisors
- UVA294 - Divisors
- hihocodxer1187 Divisors
- uva294 Divisors
- Counting Divisors
- Counting Divisors
- Counting Divisors
- Matrix Power Series
- cacti监控客户端配置
- 【jzoj3769】【NOI2015模拟8.14】【A+B】
- 黑客叔叔(雨袭团)内部交流题(第一季1.0.1):
- Cocos2d-js cc.director介绍
- HDU6069Counting Divisors
- Python QQ 发送Email SMTP
- ssm整合经验(SpringMVC+Mybatis)
- 揭露动画—ViewAnimationUtils.createCircularReveal
- Android数据库监听器+Demo
- Java 递归,利用递归阶乘累加以及打印文件夹目录
- JZOJ 2017.8.6 B组总结
- nyoj6 喷水装置(一)
- HDU