Pagini recente » Cod sursa (job #2371587) | Cod sursa (job #1690760) | Cod sursa (job #2798359) | Cod sursa (job #2338282) | Cod sursa (job #2694359)
#include <fstream>
#define MOD 9901;
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
long long putere(long long first, long long second){
long long pow = 1;
while(second){
if(second % 2 == 1){
pow = (1LL * pow * first);
}
first = 1LL * first * first;
second /= 2;
}
return pow;
}
int main(){
long long firstNumber, secondNumber;
cin >> firstNumber >> secondNumber;
long long divisor = 2;
long long sumDivisors = 1;
while(firstNumber > 1){
long long pow1 = 0;
while(firstNumber % divisor == 0){
firstNumber /= divisor;
pow1++;
}
if(pow1){
pow1 *= secondNumber;
sumDivisors *= (1LL * (putere(divisor, pow1 + 1) - 1) / (divisor - 1)) % MOD;
}
divisor++;
if(divisor * divisor > firstNumber){
divisor = firstNumber;
}
}
cout << sumDivisors % MOD;
return 0;
}