Cod sursa(job #171870)

Utilizator ghiutaalexGhiuta Alex ghiutaalex Data 5 aprilie 2008 12:27:37
Problema Suma divizorilor Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
long long mod(long long a,long long b,long long c)
{if(b==1) return a%c;
 else if(b%2==0) return (mod(a,b/2,c)*mod(a,b/2,c))%c;
      else return (mod(a,b-1,c)*mod(a,1,c))%c;
}
long long sumdiv(long long a,long long b,long long c)
{if(b==0) return 1;
 else if(b%2==0) return mod(a,b,c)+sumdiv(a,b/2,c);
      else return mod(a,b,c)+sumdiv(a,b-1,c);
}
int main()
{long long a,b,p;
 FILE*f=fopen("sumdiv.in","r");
 FILE*g=fopen("sumdiv.out","w");
 fscanf(f,"%lld %lld",&a,&b);
 p=sumdiv(a,b,9901);
 fprintf(g,"%lld",p);
 fcloseall();
}