Cod sursa(job #494662)

Utilizator crisvirusDutescu Cristian crisvirus Data 22 octombrie 2010 15:46:36
Problema Suma si numarul divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>
int main()
{
	int i,n,a,tau,sigma,p,t;
	freopen("ssnd.in","r",stdin);
	freopen("ssnd.out","w",stdout);
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		sigma = tau = 1;
		for(i=2;i*i<=n;++i)
			if(n%i ==0)
			{
				p=0;
				a=1;
				while(n%i==0)
				{
					n/=i;
					++p;
					a*=i;
				}
				a*=i;
				tau*=1+p;
				
				sigma=(sigma*(a-1)/(i-1))%9973;
				
			}
		if(n!=1)
		{
			tau*=2;
			sigma=(sigma*(n+1))%9973;
		}
		printf("%d %d\n",tau,sigma%9973);
	}
	return 0;
}