1 条题解

  • 2
    @ 2024-6-12 18:29:04

    一道数论题,主要考察对最小公倍数的应用。

    思路

    这道题明显就是求n n 个数的最小公倍数,我们可以用乘积除以最大公因数的方法,每次求出前i i 个数的最小公倍数。

    提醒

    本题要注意数据量过大,会超整形的数据量,所以我们需要用到超长整形来存储数据,因为 501050^{10} 明显超过了 2312^{31}的数据量。

    参考代码:

    #include<bits/stdc++.h>
    using namespace std;
    long long n,a[11],lcmm;
    long long gcdd(long long x, long long y)
    {//辗转相除法
         if(y==0)
                return x;
         else
                return gcdd(y,x%y);
    }
    int main()
    {
          cin>>n;
          for(long long i=1;i<=n;i++)
                  cin>>a[i];
          lcmm=a[1];
          for(long long i=1;i<=n;i++)
                  lcmm=lcmm*a[i]/gcdd(lcmm,a[i]);//依次计算最小公倍数
          cout<<lcmm;
          return 0;
    }
    
    • 1

    [GESP样题 五级] 小杨的锻炼

    信息

    ID
    658
    时间
    1000ms
    内存
    512MiB
    难度
    6
    标签
    递交数
    61
    已通过
    21
    上传者