Cod sursa(job #670495)

Utilizator Victor10Oltean Victor Victor10 Data 29 ianuarie 2012 12:49:31
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <cstdio>
long int v[131131];
int main(){
	freopen("ssnd.in","r",stdin);
	freopen("ssnd.out","w",stdout);
	int t,n,i,nr;
	long int S,put[5000]={1};
	scanf("%d",&t);
	while(t--){
		S=1;
		nr=1;
		i=2;
		scanf("%d",&n);
		//descompunem in factori primi
		while(n!=1){
			if(n%i==0){
				++v[i];
				n/=i;
				put[i]*=i;
			}
			else
			i++;
		}
		for(i=2;i<=150;i++)
			if(v[i]){
				nr=nr*(v[i]+1);
				S=S*( ( put[i]*i -1 )/(i-1)) ;
			}
		printf("%d %ld",nr,S);
	}
}