Cod sursa(job #1378513)

Utilizator Balescu_OvidiuBalescu Ovidiu-Gheorghe Balescu_Ovidiu Data 6 martie 2015 12:42:14
Problema Suma divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <cstdio>

long long pow(long long &n,long long p){
	long long rez=1;
	while(p){
		if(p&1){
			rez*=n;
			p--;
		}
		if(p){
			p>>=1;
			n*=n;
		}
	}
	return rez;
}
int main(){  
	long long a,b;
	FILE*f=fopen("sumdiv.in","r");
	FILE*g=fopen("sumdiv.out","w");
	fscanf(f,"%lld %lld",&a,&b);
	a=pow(a,b);
	long long s=a+1,x=2;
	while(x*x<=a){
		if(a%x==0)
			if(x!=a/x)
				s+=x+a/x;
			else
				s+=x;
			x++;
	}
	fprintf(g,"%lld",s%9901);
	fclose(f);
	fclose(g);
	return 0;
}