Pagini recente » Cod sursa (job #1526945) | Cod sursa (job #2792816) | Cod sursa (job #1348133) | Cod sursa (job #1876259) | Cod sursa (job #128330)
Cod sursa(job #128330)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int modulo(int a,int b){
unsigned long long div,suma=0;
unsigned long long x=1,y=a; // long long is taken to avoid overflow of intermediate results
while(b > 0){
if(b%2 == 1){
x=(x*y)%9901;
}
y = (y*y)%9901; // squaring the base
b /= 2;}
for(div=1;div<=y;div++)
{
if(y%div==0)
suma+=div;
}
return suma;
}
int main()
{
unsigned long long a,b,div;
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;
}