质因数分解 ABA*B 只要分别分解 A,BA,B 然后吧相同的质数指数相加就可以了。

AA 个东西分成两堆共有 A+1A+1 种方案,所以指数加一在相乘即可。

注意分讨 >A>\sqrt A>B>\sqrt B 的质因数。

CODE:

#include<bits/stdc++.h>
#define fru(i,j,k) for(int i=j;i<=k;++i)
#define frd(i,j,k) for(int i=j;i>=k;--i)
#define pc(x) putchar(x)
#define fio(x) freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);
using namespace std;using ll = long long;
namespace ugi{
char c=' ';
ll in(void)
{
ll x=0;bool f=false;
while(!isdigit(c)){f^=c=='-';c=getchar();}
while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=getchar();}
return f?-x:x;
}
}
using ugi::in;
const int maxn=10000012;
ll a,b,ans=1,cnt[maxn];
bool p[maxn];
void pl(ll& dc)
{
for(ll i=2;i*i<=dc;++i)
{
while(dc%i==0){cnt[i]++;dc/=i;}
}
}
int main()
{
fio(rsa);
a=in();b=in();
pl(a);pl(b);
if(a==b&&a>1)ans*=3;
else
{
if(a>1)ans*=2;
if(b>1)ans*=2;
}
// cerr<<"finish";
fru(i,1,10000000)
{
ans*=cnt[i]+1;
}
printf("%lld",ans);
return 0;
}