首页 > 其他分享 >Acwing 97

Acwing 97

时间:2023-02-24 22:22:50浏览次数:41  
标签:约数 int res k1 ans Acwing 97 mod

Acwing 97. 约数之和

题意

求\(a^b\)的约数之和

思路

假设不考虑次方,只求a的约数之和,要怎么求呢?
当遇到一个数b能被a整除时,假设当前答案为\(ans\),则应再加上\(ans*b\)。
a经过质数分解定理后为\(p_1^{k1}p_3^{k3}p_3^{k3}...\)
当增加一个质数约数\(c^x\)时,则答案应变为\(ans*\sum_0^{i=x}c^i\),
运用快速幂的思想 ,当x为奇数,则有偶数个项,\(\sum_0^{i=x}c^i =(\sum_0^{i=\frac{x}{2}}c^i)*(c^{\lceil \frac{x}{2} \rceil}+1)\)
当x为偶数,则将x-1代入上式,多出的那个直接加到答案中

代码


int q_pow(int a,int b)
{
	int res=1;
	while(b)
	{
		if(b&1) res=(res*a)%mod;
		a=a*a%mod;
		b/=2;
	}
	return res;
}

int cal(int a,int b) 
{
	if(b==0) return 1ll;
	int res=0;
	if(b&1) 
	{	
		int k1=cal(a,b/2)%mod;
		int k2=(q_pow(a,(b+1)/2)+1)%mod;
		res=(res+k1*k2%mod)%mod;
	}
	else 
	{
		res=(res+q_pow(a,b))%mod;//多出来的那个
		int k1=cal(a,(b-1)/2)%mod;
		int k2=(q_pow(a,b/2)+1)%mod;
		res=(res+k1*k2%mod)%mod;
	}
	return res;
}

void solve() 
{
	cin>>n>>m;
	ans=1;
	if(n==0) {cout<<0<<endl;return;}
	for(int i=2;i<=n;i++) 
	{	
		if(n%i==0) 
		{
			int cnt=0;
			while(n%i==0) cnt++,n/=i;
			// ans*(i)
			if(i*m>0) ans=(ans*cal(i,cnt*m))%mod;
		}
	}
	cout<<ans<<endl;
}

标签:约数,int,res,k1,ans,Acwing,97,mod
From: https://www.cnblogs.com/LIang2003/p/17153381.html

相关文章

  • Acwing 22
    classSolution{public:intfunc(vector<int>&nums,intbegin,intend){while(begin+1<end){intmid=begin+((end-begin)>>1);......
  • P3997 [SHOI2013]扇形面积并 题解
    理解题意后可以把题目看成一个覆盖线段的问题。对于点在\(-m\)上,看成在\(m\)上。对于\(l<r\),不用处理。对于\(l>r\),将问题看成\((l,m)\)和\((-m+1.r)\)两个区......
  • P3977 [TJOI2015]棋盘 题解
    前制知识引导状态压缩动态规划:[P1896[SCOI2005]互不侵犯](https://www.luogu.com.cn/problem/P1896)矩阵加速优化:[P1962斐波那契数列](https://www.luogu.com.cn/prob......
  • 2023.2.23AcWing蓝桥杯集训·每日一题
    今天练习的思维为递推。AcWing3777.砖块题目描述\(n\)个砖块排成一排,从左到右编号依次为\(1∼n\)。每个砖块要么是黑色的,要么是白色的。现在你可以进行以下操作若......
  • 【macOS软件】VMware Fusion 13.0.1(21139760)强大简单的虚拟机
    原文来源于黑果魏叔官网,转载需注明出处。应用介绍VMwareFusion是适用于Mac的强大简单的虚拟机,为Mac用户提供了在Mac上运行Windows以及与Mac应用程序并排运行的数百个其他操......
  • AcWing356/洛谷P4180 次小生成树
    涉及知识点:最小生成树,倍增题意题目链接(洛谷)题目链接(AcWing)题目写的很清楚,给定一张N个点M条边的无向图,求无向图的严格次小生成树。设最小生成树的边权之和为sum,严格次......
  • 2023.2.22AcWing蓝桥杯集训·每日一题
    知识点为双指针。AcWing1238.日志统计(蓝桥杯辅导课)题目描述小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有\(N\)行。其中每一行的格式是:tsid......
  • acwing 笨拙的手指
    题目奶牛贝茜正在学习如何在不同进制之间转换数字。但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的......
  • acwing 亲戚
    题目或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个......
  • Solution Luogu6097 子集卷积
    其实是暴力。因为这是模板题,所以模板的前置知识也要讲。前置知识:FWT计算或卷积。这里只需要掌握快速计算或卷积的方法,所以内容较少。如果向了解更多(比如异或卷积)的话......