1 条题解
-
0
一道数论题,主要考察对最小公倍数的应用。
思路
这道题明显就是求 n个数的最小公倍数,我们可以用除以最大公因数的方法,每次求出前 i个数的最小公倍数。
提醒
本题要注意数据量过大,会超整形的数据量,所以我们需要用到超长整形来存储数据,因为 50¹⁰明显超过了 2³¹ 的数据量。
代码
#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(){ scanf("%lld",&n); for(long long i=1;i<=n;i++) scanf("%lld",&a[i]); lcmm=a[1]; for(long long i=1;i<=n;i++) lcmm=lcmm*a[i]/gcdd(lcmm,a[i]);//依次计算最小公倍数 printf("%lld",lcmm); return 0; }
- 1
信息
- ID
- 132
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 37
- 已通过
- 26
- 上传者