Cod sursa(job #471536)

Utilizator ChallengeMurtaza Alexandru Challenge Data 19 iulie 2010 12:49:09
Problema Suma divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>

using namespace std;

const char InFile[]="sumdiv.in";
const char OutFile[]="sumdiv.out";
const long long MOD=9901;

ifstream fin(InFile);
ofstream fout(OutFile);

long long A,B,p,k,P,S,s,d;

int main()
{
	fin>>A>>B;
	p=2;
	k=0;
	s=d=1;
	while(A>1)
	{
		if(A%p==0)
		{
			k=0;
			P=1;
			S=1;
			while(A%p==0)
			{
				P*=p;P%=MOD;
				S+=P;
				S%=MOD;
				++k;
				A/=p;
			}
			for(register int i=0;i<k*(B-1);++i)
			{
				P*=p;
				P%=MOD;
				S+=P;
				S%=MOD;
			}
			s*=S;
			s%=MOD;
		}
		++p;
	}
	fin.close();
	
	if(B==0)
	{
		S=0;
	}

	fout<<S;
	fout.close();
	return 0;
}