Pagini recente » Cod sursa (job #3311769) | Cod sursa (job #3327401) | Cod sursa (job #3349267) | Cod sursa (job #3340162) | Cod sursa (job #3323394)
#include <stdio.h>
#include <stdlib.h>
#define MOD 9901
int exp_rap( int a, int n ) {
int p = 1;
while ( n > 0 ) {
if ( n % 2 == 1 )
p = p * a % MOD;
a = a * a % MOD;
n = n / 2;
}
return p;
}
int main()
{
FILE *fin, *fout;
int num_a, num_b, p, e, sumi, divi, put, num;
fin = fopen( "sumdiv.in", "r" );
fscanf( fin, "%d%d", &num_a, &num_b );
fclose( fin );
sumi = 1;
divi = 2;
while ( divi * divi <= num_a ) {
put = 0;
while ( num_a % divi == 0 ) {
put++;
num_a = num_a / divi;
}
if ( put > 0 ) {
p = divi;
e = put + 1;
num = exp_rap( p, e );
sumi = sumi * (( num - 1 ) / ( p - 1 )) % MOD;
}
divi++;
}
if ( num_a > 1 ) {
p = num_a;
e = num_b + 1;
num = exp_rap( p, e );
sumi = sumi * (( num - 1 ) / ( p - 1 )) % MOD;
}
fout = fopen( "sumdiv.out", "w" );
fprintf( fout, "%d\n", sumi % MOD );
fclose( fout );
return 0;
}