Cod sursa(job #406048)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 1 martie 2010 09:23:39
Problema Suma si numarul divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <cstdio>

#define file_in "ssnd.in"
#define file_out "ssnd.out"

#define Mod 9973



int T,N,i,inv[1000000],e,d,nrd,suma,p;

int prim(int X)
{
	if (X==1)
		return 0;
	if (X==2) 
		return 1;
	
	int dd=0;
	for (int i=1;i<=X;++i)
		 if (X%i==0)
              dd++; 
    if (dd==2)
		return 1;
    return 0;
}

int my_pow(int a,int b)
{
    int t;
    
    if (!b) 
		return 1;
    t=my_pow(a,b>>1);
    t=(t*t)%Mod;
    if (b&1)
		t=(t*a)%Mod;
    return t;
}


int main()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	
	scanf("%d", &T);
	
	//for (i=1;i<Mod;++i)
    //    inv[i]=my_pow(i,Mod-2);

	
	while(T--)
	{
		scanf("%d", &N);
		suma=(N+1)%Mod;
		
		nrd=2;
		for (i=2;i*i<=N;++i)
	         if (N%i==0)
			 {
				nrd+=2;
                suma=(suma+i)%Mod;
				if (i*i==N)
					nrd--;
				else
					suma=(suma+N/i)%Mod;
			 }
		printf("%d %d\n", nrd,suma);
	
	}
	
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}