#include<bits/stdc++.h>
#define int long long
#define double long double
#define INF INT_MAX
using namespace std;
const int mod=998244353*2;
int a,b,ans;
signed main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>a>>b;
b%=mod,ans=b;
for(int i=2;i*i<=a;i++){
int sum=0;
while(a%i==0){
a/=i;
sum++;
}
ans=ans*(b*sum%mod+1)%mod;
}
if(a!=1) ans=ans*(b+1)%mod;
cout<<ans/2<<endl;
return 0;
}
为什么在模数*2,答案/2的情况下能AC,求解释