Cod sursa(job #245468)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 18 ianuarie 2009 01:00:24
Problema Suma divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
# define NR 9901
int a,b,suma;
void citire()
{
	scanf("%d%d",&a,&b);
}
int power(int a,int b)
{
	int rez=1;
	for (int i=1; i<=b; i++)
		rez*=a;
	return rez;
}
void rezolvare()
{
	int i,exp;
	for (i=2; i*i<=a; i++)
	{
		if (a%i==0)
		{
			exp=0;
			while (a%i==0)
			{
				a/=i;
				exp++;
			}
			suma+=(power(i,exp*b+1)-1)/(i-1);
		}
	}
	if (a!=1)
		suma+=(power(a,b+1)-1)/(a-1);
}	
int main()
{
	freopen("sumadiv.in","r",stdin);
	freopen("sumadiv.out","w",stdout);
	citire();
	rezolvare();
	printf("%d",suma%NR);
	return 0;
}