Cod sursa(job #582302)

Utilizator gyeresihunorGyeresi Hunor gyeresihunor Data 15 aprilie 2011 10:40:30
Problema Suma si numarul divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include "stdio.h"

long t[1001001];
long long x;
int nr;
int mnr=1;
int snr=1;
int y;
int i;
int n,z;
int j;
int ppw(int a, int x)
{
	if(x==1)return a;
	int c=ppw(a, x/2);
	if(x%2)return (((c*c)%9973)*a)%9973;
	return (c*c)%9973;
}

int main()
{
	freopen("ssnd.in","r",stdin);
	freopen("ssnd.out","w",stdout);
	scanf("%d",&n);
	for(z=1;z<=n;z++)
	{
		scanf("%lld",&x);
		mnr=1;
		snr=1;
		while(x>1)
		{
			for(i=2;i<=x;i++)
			{
				nr=1;
				while(!(x%i))
				{
					nr++;
					x/=i;
				}
				mnr=( ((mnr*(ppw(i, nr)-1))%9973) * ppw(i-1,9971) )%9973;
				snr=(snr*nr)%9973;
			}
		}
		printf("%d %d\n",snr, mnr);
	}
	return 0;
}