Cod sursa(job #456008)

Utilizator emanuela.hallerHaller Emanuela emanuela.haller Data 14 mai 2010 18:22:20
Problema Suma divizorilor Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>

int main()
   {
    freopen("sumdiv.in","r",stdin);
    freopen("sumdiv.out","w",stdout);
    long long  a,b;
    scanf("%lli %lli",&a,&b);
    
    char prim[50000];
    long i,j;
    long long s,c,p;
    
    for(i=2;i<=50000;i++)
      prim[i]=1;
    for(i=2;i*i<=50000;i++)
       if (prim[i])
         {
          for (j=i+i;j<=50000;j+=i)
             prim[j]=0;
         }  
    j=2;s=1;
    while (a>1)
       {
        while (prim[j]==0) j++;
        c=0; p=1;
        while (a%j==0)
          {
           c++;
           a/=j;
           p*=j;
          }
        if (c!=0)
           {
            for(i=1;i<=b;i++) p*=j; 
            s=s*(p-1)/(j-1);
           }   
       }
       
    printf("%lli\n",s%9901);   
    return 0;
   }