Submission #3424790
Source Code Expand
#include <bits/stdc++.h>
#define For(i, j, k) for (int i = j; i <= k; ++ i)
#define Forr(i, j, k) for (int i = j; i >= k; -- i)
using namespace std;
inline int read() {
int x = 0, p = 1; char c = getchar();
for (; !isdigit(c); c = getchar()) if (c == '-') p = -1;
for (; isdigit(c); c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
return x * p;
}
inline void File() {
freopen("D.in", "r", stdin);
freopen("D.out", "w", stdout);
}
const int N = 2e5 + 10, mod = 1e9 + 7;
int fac[N], inv[N], n, m, c[N];
int isnot[N], prime[N], cnt, ps;
inline int qpow(int a, int b) {
static int res;
for (res = 1; b; b >>= 1, a = 1ll * a * a % mod)
if (b & 1) res = 1ll * res * a % mod;
return res;
}
inline void Init(int n) {
isnot[1] = 1;
For(i, 2, n) {
if (!isnot[i]) prime[++ cnt] = i;
For(j, 1, cnt) {
if (1ll * i * prime[j] > n) break;
isnot[i * prime[j]] = 1;
if (i % prime[j] == 0) break;
}
}
fac[0] = 1;
For(i, 1, n) fac[i] = 1ll * i * fac[i - 1] % mod;
inv[n] = qpow(fac[n], mod - 2);
Forr(i, n - 1, 0) inv[i] = 1ll * (i + 1) * inv[i + 1] % mod;
}
inline int C(int n, int m) {
return 1ll * fac[n] * inv[m] % mod * inv[n - m] % mod;
}
int main() {
Init(N - 5);
n = read(), m = read(), n = abs(n);
for (int i = 1; prime[i] <= n && i <= cnt; ++ i) {
for (; n % prime[i] == 0; ) n /= prime[i], ++ c[i]; ps = i;
}
int ans = 1;
For(i, 1, ps) ans = 1ll * ans * C(c[i] + m - 1, m - 1) % mod;
ans = 1ll * ans * qpow(2, m - 1) % mod;
cout << ans << endl;
return 0;
}
Submission Info
Judge Result
Set Name |
All |
Score / Max Score |
0 / 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 |
2688 KB |
00_max2.txt |
AC |
5 ms |
2688 KB |
00_max3.txt |
AC |
6 ms |
2688 KB |
00_min.txt |
AC |
5 ms |
2688 KB |
00_sample_01.txt |
AC |
6 ms |
2688 KB |
00_sample_02.txt |
AC |
5 ms |
2688 KB |
00_sample_03.txt |
AC |
5 ms |
2688 KB |
00_sample_04.txt |
AC |
5 ms |
2688 KB |
01_rnd_00.txt |
AC |
5 ms |
2688 KB |
01_rnd_01.txt |
AC |
6 ms |
2688 KB |
01_rnd_02.txt |
AC |
5 ms |
2688 KB |
01_rnd_03.txt |
AC |
6 ms |
2688 KB |
01_rnd_04.txt |
AC |
5 ms |
2688 KB |
01_rnd_05.txt |
AC |
6 ms |
2688 KB |
01_rnd_06.txt |
WA |
6 ms |
2688 KB |
01_rnd_07.txt |
WA |
6 ms |
2688 KB |
01_rnd_08.txt |
AC |
5 ms |
2688 KB |
01_rnd_09.txt |
WA |
6 ms |
2688 KB |
01_rnd_10.txt |
WA |
6 ms |
2688 KB |
01_rnd_11.txt |
AC |
6 ms |
2688 KB |
01_rnd_12.txt |
WA |
6 ms |
2688 KB |
01_rnd_13.txt |
AC |
6 ms |
2688 KB |
01_rnd_14.txt |
AC |
6 ms |
2688 KB |
01_rnd_15.txt |
WA |
6 ms |
2688 KB |
01_rnd_16.txt |
AC |
6 ms |
2688 KB |
01_rnd_17.txt |
WA |
6 ms |
2688 KB |
01_rnd_18.txt |
AC |
6 ms |
2688 KB |
01_rnd_19.txt |
AC |
5 ms |
2688 KB |
01_rnd_20.txt |
WA |
6 ms |
2688 KB |
01_rnd_21.txt |
WA |
6 ms |
2688 KB |
01_rnd_22.txt |
WA |
6 ms |
2688 KB |
01_rnd_23.txt |
WA |
6 ms |
2688 KB |
01_rnd_24.txt |
WA |
6 ms |
2688 KB |
01_rnd_25.txt |
AC |
6 ms |
2688 KB |
01_rnd_26.txt |
AC |
6 ms |
2688 KB |
01_rnd_27.txt |
AC |
6 ms |
2688 KB |
01_rnd_28.txt |
AC |
5 ms |
2688 KB |
01_rnd_29.txt |
AC |
5 ms |
2688 KB |
04_primes_01.txt |
WA |
6 ms |
2688 KB |
04_primes_02.txt |
WA |
6 ms |
2688 KB |