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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章