这道题的意思就是让你求从a到很大一个数的lcm([a,b])/a有多少个不一样的值,然后你的用数论的知识lcm([a,b])/a=b/gcd(a,b);
也就是让你求b的因子个数。
#include<stdio.h>
#include<string.h>
#include<queue>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{
long long n;
scanf("%lld",&n);
long long m=sqrt(n);
long long ans=0;
for(long long i=1; i<=m; i++)
{
if(n%i==0)
ans+=2;
}
if(m*m==n)
ans-=1;
printf("%lld\n",ans);
return 0;
}