Cod sursa(job #728566)

Utilizator lucian666Vasilut Lucian lucian666 Data 28 martie 2012 19:56:57
Problema Suma divizorilor Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb

#include<fstream>
#define Mod 9901
using namespace std;
ofstream out("sumdiv.out");
long long A,B;
int pb(int,long long );
long long  calc(long long );
int main()
{
	ifstream in("sumdiv.in");
	in>>A>>B;
	long long rez=pb(A,B);
	out<<calc(rez);
	return 0;
}
int pb(int baza,long long  expo)
{
	int i;
	int b[50],nrb=0;
	for(;expo;expo/=2)
		b[++nrb]=expo%2;
	int rez=1;
		for(i=nrb;i;i--)
		{
			rez=1LL*rez*rez%Mod;
			if(b[i])
				rez=1LL*rez*baza%Mod;
		}
		return rez;
}
long long  calc(long long  n)
{
	long long s=0;
	long long i;
	for(i=1;i<=n;i++)
		if(n%i==0)
			s+=i;
		return s;
}