HDU1452:Happy 2004(积性函数)(因子和)
2024-08-30 09:10:19
题意
给出\(x\),求\(2004^x\)的所有因子和
分析
\(2004=2*2*3*167\)
则\(2004^x\)=\(2^{2x}*3^x*167^x\)
s[\(2004^x\)]=s[\(2^{2x}\)]s[\(3^x\)]s[\(167^x\)]
s[i]为积性函数
如果\(p\)为素数,则$s(p^x) = (1 + p^1 + p^2 + ... p^x) = (p^{x+1} - 1) / (p-1) $
然后求出2,3,167的逆元即可
注意开long long
代码
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <bitset>
using namespace std;
#define ll long long
#define F(i,a,b) for(int i=a;i<=b;++i)
#define R(i,a,b) for(int i=a;i<b;++i)
#define mem(a,b) memset(a,b,sizeof(a))
#define cpy(a,b) memcpy(a,b,sizeof(b))
#pragma comment(linker, "/STACK:102400000,102400000")
inline void read(int &x){x=0; char ch=getchar();while(ch<'0') ch=getchar();while(ch>='0'){x=x*10+ch-48; ch=getchar();}}
int a[4]={0,2,3,22},x;
const int mod=29;
ll work(int p,int x)
{
ll ret=1;
for(;x;x>>=1,(p*=p)%=mod) if(x&1) (ret*=p)%=mod;
return ret;
}
int main()
{
while(scanf("%d",&x),x)
{
ll ans=1;ans=ans*(work(a[1],2*x+1)-1)%mod;
F(i,2,3)
ans=ans*((work(a[i]%mod,x+1)-1)*work((a[i]-1)%mod,mod-2))%mod;
printf("%lld\n",ans);
}
return 0;
}
最新文章
- C#委托与事件
- POJ 2826 An Easy Problem?! --计算几何,叉积
- MSDN论坛被垃圾信息刷爆了!!!
- 【11-01】Sublime text 学习笔记
- Bilateral Filtering(双边滤波) for SSAO(转)
- python中若干错误
- 初识 Asp.Net内置对象之Server对象
- JavaScript 关于this的理解
- 【iOS知识学习】_iOS动态改变TableView Cell高度
- 在Mac OS X中搭建STM32开发环境(2)
- Apache FileUpload详细介绍
- [转]Windows中的句柄(handle)
- qt下的跨目录多工程编译
- [原创].NET 业务框架开发实战之七 业务层初步构想
- 201521123015 《JAVA程序设计》第11周学习总结
- mysql进阶知识
- mysql 索引及索引创建原则
- swift 实践- 04 -- UIButton
- Ionic 1 &; 2 开发常见问题 Q&;A
- 工具类 | window批处理杀死指定端口进程
热门文章
- jree-创建普通折线图
- Spring Data JPA 进阶
- 机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain
- VB和VB.NET有什么区别
- 在linux命令行中编译和运行java文件
- js和jquery实现回到顶层
- Matlab遗传算法优化问题求解的演示样例代码
- 【视频】零基础学Android开发:蓝牙聊天室APP(三)
- Java中抽象类和接口的区别?