Cod sursa(job #133536)

Utilizator soriynSorin Rita soriyn Data 8 februarie 2008 21:22:43
Problema Suma divizorilor Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int modulo(unsigned long long a,unsigned long long b){
    unsigned long long div=0,suma=0;
    unsigned long long x=1,y=a; 
    while(b > 0){
        if(b%2 == 1){
            x=(x*y)%9901;
        }
        y = (y*y)%9901; 
        b /= 2;
    }
    for(div=1;div<=x;div++)
    {
    if(x%div==0)
    suma+=div;
}
    return suma;
}

int main()
{
   unsigned long long a=0,b=0,div=0;
   FILE *i;
   FILE *o;
   i=fopen("sumdiv.in","r");
   o=fopen("sumdiv.out","w");
   fscanf(i,"%llu %llu",&a,&b);
    
    div=modulo(a,b); 
   fprintf(o,"%llu",div);
   	
  return 0;
}