Submission #3872432
Source Code Expand
#include <bits/stdc++.h>
#define FOR(i, begin, end) for(int i=(begin);i<(end);i++)
#define REP(i, n) FOR(i,0,n)
#define IFOR(i, begin, end) for(int i=(end)-1;i>=(begin);i--)
#define IREP(i, n) IFOR(i,0,n)
#define SORT(a) sort(a.begin(), a.end())
#define REVERSE(a) reverse(a.begin(), a.end())
#define Lower_bound(v, x) distance(v.begin(), lower_bound(v.begin(), v.end(), x))
#define Upper_bound(v, x) distance(v.begin(), upper_bound(v.begin(), v.end(), x))
#define int long long
#define INF 1000000000000000000
using namespace std;
#define ANS(f) if(f) cout << "YES" << endl; else cout << "NO" << endl;
typedef vector<int> vec;
typedef vector<vec> mat;
typedef pair<int, int> Pii;
template<typename T>
void readv(vector<T> &a){ REP(i, a.size()) cin >> a[i]; }
void readi(vector<int> &a){ REP(i, a.size()){cin >> a[i]; a[i]--;} }
void debug(mat m){REP(i, m.size()){ REP(j, m[i].size()){ cout << m[i][j] << ","; } cout << endl; }}
int modpow(int x, int n, int m){
int a = 1;
IREP(i, 64){
a = (a * a) % m;
if(((n >> i) & 1) == 1) a = (a * x) % m;
}
return a;
}
class Combination
{
public:
vec fact, invfact;
int MAX_N, mod;
Combination(int MAX_N, int mod): MAX_N(MAX_N), mod(mod) {
initialize();
}
void initialize(){
fact = vec(MAX_N + 1);
invfact = vec(MAX_N + 1);
fact[0] = 1;
FOR(i, 1, MAX_N + 1){
fact[i] = (fact[i - 1] * i) % mod;
}
invfact[MAX_N] = modpow(fact[MAX_N], mod - 2, mod);
IREP(i, MAX_N){
invfact[i] = (invfact[i + 1] * (i + 1)) % mod;
}
}
int nCr(int n, int r){
if(r > n || r < 0 || n < 0) return 0;
if(n > MAX_N){
MAX_N = n;
initialize();
}
int a = fact[n];
a = (a * invfact[r]) % mod;
a = (a * invfact[n - r]) % mod;
return a;
}
};
signed main(){
int N, M; cin >> N >> M;
int mod = 1000000007;
Combination C(M + 100, mod);
N = llabs(N);
map<int, int> m;
FOR(i, 2, 100000){
while(N % i == 0){
N /= i;
m[i] += 1;
}
}
if(N > 1) m[N] += 1;
int ans = 1;
for(auto p: m){
ans *= C.nCr(p.second + M - 1, M - 1);
ans %= mod;
}
ans *= modpow(2, M - 1, mod);
ans %= mod;
cout << ans << endl;
return 0;
}
Submission Info
Judge Result
Set Name |
All |
Score / Max Score |
100 / 100 |
Status |
|
Set Name |
Test Cases |
All |
00_max.txt, 00_max2.txt, 00_max3.txt, 00_min.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 01_rnd_20.txt, 01_rnd_21.txt, 01_rnd_22.txt, 01_rnd_23.txt, 01_rnd_24.txt, 01_rnd_25.txt, 01_rnd_26.txt, 01_rnd_27.txt, 01_rnd_28.txt, 01_rnd_29.txt, 04_primes_01.txt, 04_primes_02.txt |
Case Name |
Status |
Exec Time |
Memory |
00_max.txt |
AC |
6 ms |
1792 KB |
00_max2.txt |
AC |
6 ms |
1792 KB |
00_max3.txt |
AC |
6 ms |
1792 KB |
00_min.txt |
AC |
2 ms |
256 KB |
00_sample_01.txt |
AC |
2 ms |
256 KB |
00_sample_02.txt |
AC |
2 ms |
256 KB |
00_sample_03.txt |
AC |
2 ms |
256 KB |
00_sample_04.txt |
AC |
2 ms |
256 KB |
01_rnd_00.txt |
AC |
4 ms |
896 KB |
01_rnd_01.txt |
AC |
3 ms |
384 KB |
01_rnd_02.txt |
AC |
2 ms |
256 KB |
01_rnd_03.txt |
AC |
4 ms |
768 KB |
01_rnd_04.txt |
AC |
4 ms |
768 KB |
01_rnd_05.txt |
AC |
4 ms |
896 KB |
01_rnd_06.txt |
AC |
3 ms |
512 KB |
01_rnd_07.txt |
AC |
3 ms |
512 KB |
01_rnd_08.txt |
AC |
6 ms |
1792 KB |
01_rnd_09.txt |
AC |
4 ms |
1152 KB |
01_rnd_10.txt |
AC |
5 ms |
1152 KB |
01_rnd_11.txt |
AC |
5 ms |
1280 KB |
01_rnd_12.txt |
AC |
6 ms |
1664 KB |
01_rnd_13.txt |
AC |
4 ms |
896 KB |
01_rnd_14.txt |
AC |
4 ms |
1024 KB |
01_rnd_15.txt |
AC |
3 ms |
512 KB |
01_rnd_16.txt |
AC |
5 ms |
1280 KB |
01_rnd_17.txt |
AC |
6 ms |
1792 KB |
01_rnd_18.txt |
AC |
5 ms |
1408 KB |
01_rnd_19.txt |
AC |
3 ms |
384 KB |
01_rnd_20.txt |
AC |
4 ms |
1024 KB |
01_rnd_21.txt |
AC |
4 ms |
1024 KB |
01_rnd_22.txt |
AC |
3 ms |
512 KB |
01_rnd_23.txt |
AC |
5 ms |
1280 KB |
01_rnd_24.txt |
AC |
5 ms |
1408 KB |
01_rnd_25.txt |
AC |
6 ms |
1664 KB |
01_rnd_26.txt |
AC |
4 ms |
1152 KB |
01_rnd_27.txt |
AC |
4 ms |
896 KB |
01_rnd_28.txt |
AC |
4 ms |
896 KB |
01_rnd_29.txt |
AC |
6 ms |
1664 KB |
04_primes_01.txt |
AC |
6 ms |
1792 KB |
04_primes_02.txt |
AC |
6 ms |
1792 KB |