Current codeforces round div 3

problem link-

why this code is giving tle ? what is the complexity?

ll c;
cin>>c;

//for(int i=0;i<=c;i++) {cout<<seive[i]<<" ";}cout<<endl;
if(c==1) ret(1);

//assert(c<
for(int i=2;i<=c;i++){
	map<ll,ll> mp;
	ll n=i;
	while(n!=1){
		if(seive[n]==1) {mp[n]++;break;}
		mp[seive[n]]++;
		n/=seive[n];
	}
	ll sum=1;
	for(auto x:mp){
		sum*=(((ll)power(x.first,x.second+1)-1)/(x.first-1));
	}
	//deb(i,sum);
	if(sum==c) ret(i);
}

ret(-1);

Map is giving TLE. Replace map with array.

Use unordered_map instead of map or you can also use array .