Cod sursa(job #828830)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 4 decembrie 2012 15:23:48
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>
#include<math.h>
bool v[1000005];
int p[100000];
int e[100000];
int main()
{
	freopen("ssnd.in","r",stdin);
	freopen("ssnd.out","w",stdout);
	int n,i,j,t,x=0,s,s2;
	for(i=2;i<=1000000;i++)
	{
		if(v[i]==0)
		{
			x++;
			p[x]=i;
			for(j=i+i;j<=1000000;j=j+i)
				v[j]=1;
		}
	}
	scanf("%d",&t);
	for(i=1;i<=t;i++)
	{
		s=1;
		s2=1;
		scanf("%d",&n);
			for(j=1;j<=x;j++)
		while(n%p[j]==0)
		{
			e[j]++;
			n=n/p[j];
		}
		for(j=1;j<=x;j++)
		{
			s=(s*(e[j]+1))%9973;
			s2=s2*(pow(p[j],e[j]+1)-1)/(p[j]-1);
			e[j]=0;
		}
	printf("%d %d\n",s,s2);
	}
	return 0;
}