1 条题解

  • 0
    @ 2024-11-9 19:10:39

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

    思路

    这道题明显就是求 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
    上传者