题目链接:https://vjudge.net/contest/373416#problem/F
题意:a的范围是1到10^18,求a与b的最小公倍数有多少种可能。
思路:数论lcm[a,b]/a=b/gcd(a,b),可知就是求b的因子个数。
Input
1Output
1Input
2Output
2
代码如下:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define ll long long
int main()
{
ll x;
scanf("%lld",&x);
ll ans=0;
for(ll i=1; i*i<=x; i++)
{
if(x%i==0)
ans+=2;
if(i*i==x)
ans--;
}
printf("%lld\n",ans);
return 0;
}