Cod sursa(job #295535)

Utilizator ghiutaalexGhiuta Alex ghiutaalex Data 3 aprilie 2009 13:15:20
Problema Suma divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
long long a,b,s,c,i;  
FILE*f=fopen("sumdiv.in","r");  
FILE*g=fopen("sumdiv.out","w");  
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;  
}  
int main()  
{fscanf(f,"%lld %lld",&a,&b);  
 if(a==0) s=0;  
 else if(a==1||b==0) s=1;
      else {s=(a+1)%9901;  
            for(i=2;i<=a/2;i++)  
        if(a%i==0) s=(s+i)%9901;  
            for(i=2;i<=b;i++)  
        s+=mod(a,i,9901)%9901;}  
fprintf(g,"%lld",s);  
fcloseall();  
return 0;  
}