Cod sursa(job #1062239)

Utilizator federerUAIC-Padurariu-Cristian federer Data 20 decembrie 2013 21:39:35
Problema Suma divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
#define MOD 9973
using namespace std;

ifstream fin("sumadiv.in");
ofstream fout("sumadiv.out");

long A, B, sdiv=1, rez;

void putere(long b, long e)
{
	while (e)
	{
		if (e % 2 == 0)
		{
			e /= 2;
			b = (b*b)%MOD;
		}
		else
		{
			rez = (rez*b)%MOD;
			e--;
		}
	}

}

void desc_fact()
{
	int d = 2;
	while (A!=1)
	{
		int c = 0;
		while (A%d == 0)
		{
			c++;
			A /= d;
		}
		rez = 1;
		putere(d, c*B+1);
		sdiv = (sdiv*rez + MOD -1)%MOD;
		rez = 1;
		putere(d - 1, MOD - 2);
		sdiv = (sdiv*rez)%MOD;
		d++;
	}
}

int main()
{
	fin >> A >> B;
	desc_fact();
	fout << sdiv << '\n';
	return 0;
}