Cod sursa(job #670645)

Utilizator Victor10Oltean Victor Victor10 Data 29 ianuarie 2012 18:22:19
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
int v[50005];
int main(){
	freopen("ssnd.in","r",stdin);
	freopen("ssnd.out","w",stdout);
	int t,n,i,nr;
	long int S;
	scanf("%d",&t);
	for(int j=1;j<=t;++j){
		long long put[50000];
		for(i=1;i<=50000;i++){
			put[i]=1;
			v[i]=0;
		}
		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++;
		}
		int d=i;
		for(i=2;i<=d;i++)
			if(v[i]){
				nr=nr*(v[i]+1);
				S=(S*( ( put[i]*i -1 )/(i-1)))%9973 ;
			}
		printf("%d %ld\n",nr,S);
	}
}