Cod sursa(job #494412)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 21 octombrie 2010 17:05:57
Problema Suma si numarul divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>
#define MOD 9973
#define LL long long
void solve(long long x)
{
	int nrdiv=1,sdiv=1;
	for(int i=2;(long long)i*i<=x;i++)
		if(x%i==0)
		{
			int put=1,nrp=0;
			while(x%i==0)
				nrp++,put*=i, x/=i;
			nrdiv*=(nrp+1);
			sdiv*=((put*(LL)i-1)/((LL)i-1))%MOD;
		}
	if(x>1)
	{
		nrdiv*=2;
		sdiv*=(((LL)x*x-1)/(x-1))%MOD;
	}
	sdiv%=MOD;
	printf("%d %d\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;
}