1068B - LCM(数学)

    xiaoxiao2022-07-08  235

    这道题的意思就是让你求从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; }
    最新回复(0)