Cod sursa(job #431692)

Utilizator claudiu725Bruda Claudiu-Marcel claudiu725 Data 1 aprilie 2010 12:17:47
Problema Suma divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<fstream>
#include<iostream>
using namespace std;

int p[25000000];

int main() {
	ifstream fin("sumdiv.in");
	ofstream fout("sumdiv.out");
	long long i,j,n,a,b;
	fin>>a>>b;
	while (a%2==0) {
		a /= 2;
		p[0]++;
	}
	for (i = 3; a>1 ; i+=2) {
		while (a%i==0) {
			a /= i;
			p[i/2]++;
		}
	}
	n = (long long)pow(2,(double)(p[0]*b+1)) - 1;
	for (j=3;j<=i;j+=2)
		if (p[j/2])
			n *= (long long) (pow((double)j,(double)(p[j]*b+1)) - 1) / (j-1);
	fout<<n%9901;
	fin.close();
	fout.close();
	return 0;
}