欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

C. Orac and LCM

程序员文章站 2022-06-21 19:17:52
文章目录[C - Orac and LCM](https://vjudge.net/contest/381079#problem/C)题意解题思路代码C - Orac and LCM题意给你 N 个数,让你求着 N个数任意两个数的lcm组成的 ** N*N/2 **个数的 gcd是多少;解题思路代码#includeusing namespace std;#define ll long long#define fast ios::sync_wit...

C - Orac and LCM

题意

给你 N 个数,让你求着 N个数任意两个数的lcm组成的 ** N*N/2 **个数的 gcd是多少;

解题思路

C. Orac and LCM

代码

#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define fast ios::sync_with_stdio(0)
const int mx=100100;
ll g[mx];//求后缀gcd
ll a[mx];
int main()
{
	fast;
	int n;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i]; 
	for(int i=n;i;i--){
		g[i]=__gcd(a[i],g[i+1]);	
	}
	ll ans=0;
	for(int i=1;i<=n;i++){
		ans=__gcd(ans,a[i]*g[i+1]/__gcd(a[i],g[i+1]));
	}
	cout<<ans<<"\n";
	return 0;
}

本文地址:https://blog.csdn.net/qq_43750980/article/details/107119103