70分TLE,求调!
查看原帖
70分TLE,求调!
1237780
zhaochenyou__funina楼主2025/1/27 12:24
#include<bits/stdc++.h>
using namespace std;
long long n,p[100000001],x,f[100000001];
void lk(long long  n)
{
	int i=2;
	while(n!=1)
	{
		if(n%i==0)
		{
			p[i]++;
			if(i!=f[x]) f[++x]=i;
			n/=i;
			i=2;
		}
		else i++;
	}
}
int main()
{
	cin>>n;
	if(n==1)
	{
		cout<<1;
		return 0;
	}
	lk(n);
	for(int i=1;i<=x-1;i++)
	{
		if(p[f[i]]==1) cout<<f[i];
		else cout<<f[i]<<'^'<<p[f[i]];
		cout<<" * ";
	}
	if(p[f[x]]==1) cout<<f[x];
	else cout<<f[x]<<'^'<<p[f[x]];
	return 0;	
} 
2025/1/27 12:24
加载中...