Cod sursa(job #469549)

Utilizator DEYDEY2Tudorica Andrei DEYDEY2 Data 8 iulie 2010 11:38:37
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

using namespace std;

#define dim 1000003

int v[dim], q[100000];

int main()
{
	long long i, j, t, n, nr, s;
	long long unsigned p, div, aux;
	ifstream f("ssnd.in");
	ofstream g("ssnd.out");
	f>>t;
	int fi=0;
	for(i=2;i<=1000000;++i)
		if(v[i]==0)
		{
			q[fi]=i;
			fi++;
			for(j=i*i;j<=1000000;j+=i)
				v[j]=1;
		}
	for(i=1;i<=t;++i)
	{
		f>>n;
		j=0;
		nr=0;
		s=1;
		div=1;
		aux=n;
		
			while(n>1)
			{
				p=1;nr=0;
				while(n%q[j]==0)
				{
					nr++;
					p*=q[j];
					n/=q[j];
				}
				
				div*=(nr+1);
				s*=(((p*q[j])-1)/(q[j]-1))%9973;
				j++;
			}
			g<<div <<" " <<s%9973 <<'\n';
	}	
	f.close();
	g.close();			
	return 0;
}