Cod sursa(job #494406)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 21 octombrie 2010 16:58:14
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<cstdio>
void solve(long long x)
{
	long long nrdiv=1,sdiv=1;
	for(int i=2;(long long)i*i<=x;i++)
		if(x%i==0)
		{
			long long put=1,nrp=0;
			while(x%i==0)
				nrp++,put*=i, x/=i;
			nrdiv*=(nrp+1);
			sdiv*=(put*i-1)/(i-1);
		}
	if(x>1)
	{
		nrdiv*=2;
		sdiv*=(x*x-1)/(x-1);
	}
	printf("%lld %lld\n",nrdiv,sdiv);
}
int main()
{
	freopen("ssnd.in","r",stdin);
	freopen("ssnd.out","w",stdout);
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		long long x;
		scanf("%lld",&x);
		solve(x);
	}
	return 0;
}