Cod sursa(job #49245)

Utilizator FlorianFlorian Marcu Florian Data 5 aprilie 2007 16:58:03
Problema Suma divizorilor Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.43 kb
#include<stdio.h>
int main()
{long n,i,j,r,k=2,a,b,v[1000],u[100];
FILE*f=fopen("sumdiv.in","r");
FILE*g=fopen("sumdiv.out","w");
fscanf(f,"%ld %ld",&a,&b);
i=0;k=2;
while(a!=1)
	{
	r=0;
	while(a%k==0) {r++;a=a/k;}
	if(r!=0) {i++;v[i]=k;u[i]=r*b;}
	k++;}
long s=1,pr;
for(j=1;j<=i;j++)
	{pr=1;k=1;
	while(k<=u[j]+1)
		{pr*=v[j];
		k++;}
	s*=((pr-1)/(v[j]-1));
	}
fprintf(g,"%ld",s);
fclose(f);
fclose(g);
return 0;}