D - Div Game-------------------------------思维(质因数分解)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解析:
质因数分解

由题意可知,N%z==0 && z=p^e p要是素数
所以我们质因数分解N
N=p0e0 * p1e1 * p2e2 *…*pnen

对于p0e0 我们可以分解多少个不同的数呢。
我们按照幂次e0
分成
1+2+3+…+x=e0;
那么这样分的数都是不会相同的
对于每个e,我只要这样计算累加起来即可

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll x;
int main()
{
	cin>>x;
	vector<ll>v;
	for(int i=2;i<=x/i;i++)
	{
		ll res=0;
		if(x%i==0)
		{
			while(x%i==0) x/=i,res++;
			v.push_back(res);
		}
	
	
		
	 } 
	 if(x>1)  v.push_back(1);
	 ll sum=0;
	 for(int i=0;i<v.size();i++)
	 {
	 //	cout<<v[i]<<endl;
	 	ll ans=0;
	 	int j=1;
	 	while(ans+j<=v[i])
	 	{
	 		ans+=j;
	 		sum++;
	 		j++;
		 }
	 }
	 cout<<sum<<endl;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章