Cod sursa(job #544807)

Utilizator Ionutz_LalaLala Marius Ionut Ionutz_Lala Data 2 martie 2011 10:18:28
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
using namespace std;

ifstream in("ssnd.in");
ofstream out("ssnd.out");

bool ciur[1000005];
int n,t,i,j,nd,sd,p,q;

int main()
{
    for(i=2;i<=1000000;i++)
		if(ciur[i]==false)
			for(j=i<<1;j<=1000000;j+=i)
				ciur[j]=true;
	for(in>>t;t>0;t--)
	{
		sd=nd=1;
		in>>n;
		if(n%2==0)
		{
			p=0;
			q=1;
			while(n%2==0)
				p++,n/=2,q*=2;
			nd*=(p+1);
			sd*=(q*2-1);
		}
		for(i=3;i<=n;i+=2)
			if(ciur[i]==false&&n%i==0)
			{
				p=0;
				q=1;
				while(n%i==0)
					p++,n/=i,q*=i;
				nd*=(p+1);
				sd*=(q*i-1)/(i-1);
			}
		out<<nd<<' '<<sd<<'\n';
	}
    return 0;
}