这道题的意思就是让你求从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;
}