Cod sursa(job #714371)

Utilizator misinoonisim necula misino Data 15 martie 2012 18:17:30
Problema Suma divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int	a1,b,i,j,x,d,y,nr,v[100000];
long long s,p;
bool a[10000000];
int main()
{f>>a1>>b;
y=(int)(double)sqrt((double)a1);
for(i=3;i<=y;i=i+2)
	if(a[i]==0)
		for(j=i*i;j<=a1;++j)
			a[j]=1;
nr=1;
v[1]=2;
for(i=3;i<=a1;i=i+2)
	if(a[i]==0)
		++nr,v[nr]=i;
d=1;
s=1;
while(a1!=1)
{if(a1%v[d]==0)
{p=1;
while(a1%v[d]==0)
{a1=a1/v[d];
p=p*v[d];
}}
x=p;
for(i=1;i<b;++i)
	p=p*x;
s=s*(p*x-1)/(v[d]-1);
}
g<<s<<'\n';
f.close();
g.close();
return 0;
}