Pagini recente » Cod sursa (job #2899149) | Cod sursa (job #3244380) | Cod sursa (job #1866189) | Cod sursa (job #3152316) | Cod sursa (job #1853092)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in ("sumdiv.in");
ofstream out ("sumdiv.out");
long long factor[1000] ,factorp[1000];
long long nfactor = 0 ,lim = 0;
void descompunere(long long n){
nfactor = 0;
lim = sqrt(n);
if(n % 2 == 0){
factor[0] = 2;
nfactor = 1;
while(n % 2 == 0){
factorp[0]++;
n /= 2;
}
}
long long h = 3;
while(1 < n && h <= lim){
if(n % h == 0){
factor[nfactor] = h;
nfactor++;
while(n % h == 0){
factorp[nfactor - 1]++;
n /= h;
}
}
h += 2;
}
if(1 < n){
factor[nfactor] = n;
factorp[nfactor]= 1;
nfactor++;
}
}
int main()
{
long long n ,i ,a = 1,b ,s = 0 ,ss = 1 ,j;
in>>n>>b;
descompunere(n);
for(j = 0 ;j < nfactor ; j ++){
s = 0;
a = 1;
for(i = 0 ; i <= b * factorp[j] % 9900;i++){
s = (s + a)% 9901;
a = (a * factor[j])% 9901;
}
//cout<<s<<" ";
ss = (ss * s)% 9901;
}
out<<ss;
return 0;
}