CF1349A Orac and LCM 题解
题意分析
给出$n$个数,求这$n$个数两两的最小公倍数的最大公约数
思路分析
通过分析样例可以发现,如果要成为这$n$个数两两的最小公倍数的公约数,至少要是这$n$个数中$n-1$个数的约数,否则就至少会有两个数的最小公倍数无法被这个数整除。
所以只要找出所有满足至少是这$n$个数中的$n-1$个数的约数的数就可以了。找的方法很简单,只要每个数去试一下能整除被几个数就可以了。这里有几个需要注意的点:
- 找出的数应该是质数,否则可能会因为该数的约数已被找出而出错。可以不必先筛出质数,从小到大依次尝试并在找出一个数后除掉它可以保证找出的都是质数。
- 一个数作为约数时次数不一定为1,因此对于一个数要多次尝试
- 尝试的时候如果当前已经有2个数不能被整除,可以直接停止,节省时间
因为最后一点的剪枝,实际上全部尝试的次数很少,因此时间上完全过得去。
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
const int N=1e5+100;
int n,maxn;
int a[N];
ll ans=1;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]),maxn=max(maxn,a[i]);
for(int i=2;i<=maxn;i++)
{
int cnt=0;
for(int j=1;j<=n &&(cnt==j-1 || cnt==j-2);j++)
if(a[j]%i==0)
cnt++;//尝试能整除几个数
if(cnt>=n-1)//满足条件
{
ans*=i;//累计答案
for(int j=1;j<=n;j++)
if(a[j]%i==0)
a[j]/=i;//除掉
i--;//再试一次
}
}
printf("%lld",ans);
return 0;
}
CF1349A Orac and LCM 题解的更多相关文章
- Codeforces #6241 div2 C. Orac and LCM (数学)
题意:给你一个数列,求所有子序列对的\(lcm\),然后求这些所有\(lcm\)的\(gcd\). 题解:我们对所有数分解质因数,这里我们首先要知道一个定理: 对于\(n\)个数,假如某个质数\( ...
- 洛谷 P1891 疯狂LCM 题解
原题链接 享受推式子的乐趣吧 数论真有趣! 庆祝:数论紫题第 \(3\) 道. \[\sum_{i=1}^n \operatorname{lcm}(i,n) \] \[= \sum_{i=1}^n \ ...
- CF1473B String LCM 题解
Content 如果一个字符串 \(s\) 由若干个字符串 \(t\) 拼接而成,则我们说 \(s\) 能被 \(t\) 整除.定义 \(s_1,s_2\) 的最短公倍串为可以同时被 \(s_1,s_ ...
- 51NOD 2026:Gcd and Lcm——题解
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=2026 参考及推导:https://www.cnblogs.com/ivo ...
- Codeforces Round #641 (Div. 2)
只写了A~D A - Orac and Factors 题意:f(n)就是n的第二小因数,问执行k次 n=f(n)+n 后的结果. 题解:如果一直找第二小的因子的话,1e9肯定得t.看下边样例解释就会 ...
- 题解:洛谷P1891 疯狂LCM
原题链接 题目描述 描述: 众所周知,czmppppp是数学大神犇.一天,他给众蒟蒻们出了一道数论题,蒟蒻们都惊呆了... 给定正整数N,求LCM(1,N)+LCM(2,N)+...+LCM(N,N) ...
- Pairs Forming LCM (LCM+ 唯一分解定理)题解
Pairs Forming LCM Find the result of the following code: ; i <= n; i++ ) for( int j = i; j ...
- BZOJ2694:Lcm——包看得懂/看不懂题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2694 Description 对于任意的>1的n gcd(a, b)不是n^2的倍数 也就是说 ...
- 【题解】洛谷P1072 Hankson的趣味题 (gcd和lcm的应用)
洛谷P1072:https://www.luogu.org/problemnew/show/P1072 思路 gcd(x,a0)=a1 lcm(x,b0)=b1→b0*x=b1*gcd(x,b0) ( ...
随机推荐
- Python os.stat_float_times() 方法
概述 os.stat_float_times() 方法用于决定stat_result是否以float对象显示时间戳.高佣联盟 www.cgewang.com 语法 stat_float_times() ...
- ABPHelper.CLI及其依赖项简单介绍
目录 目录 ABPHelper.CLI 入门 使用指南 命令行 技术点如下 Scriban 通过Microsoft.Extensions.FileProviders.Embedded获取嵌入资源 通过 ...
- CF习题集一
CF习题集一 一.CF915E Physical Education Lessons 题目描述 \(Alex\)高中毕业了,他现在是大学新生.虽然他学习编程,但他还是要上体育课,这对他来说完全是一个意 ...
- 畅购商城(八):微服务网关和JWT令牌
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 畅购商城(一):环境搭建 畅购商 ...
- HIVE常用正则函数(like、rlike、regexp、regexp_replace、regexp_extract)
Oralce中regex_like和hive的regexp对应 LIKE 语法1: A LIKE B 语法2: LIKE(A, B) 操作类型: strings 返回类型: boolean或null ...
- java进阶(6)--访问控制权限
一.四种访问控制权限 二.举例同包下访问权限
- 使用Python Openssl库解析X509证书信息
X.509 证书结构描述 常见的X.509证书格式包括: 后缀 作用 cer/crt 用于存放证书,它是2进制形式存放的,不含私钥 pem 以Ascii来表示,可以用于存放证书或私钥. pfx/p12 ...
- three.js 着色器材质内置变量
这篇郭先生说一下three.js着色器的内置变量,分别是 gl_PointSize:在点渲染模式中,控制方形点区域渲染像素大小(注意这里是像素大小,而不是three.js单位,因此在移动相机是,所看到 ...
- SpringMVC9——异常处理
异常处理 SpringMVC: HandlerExceptionResolver接口 该接口的每个实现类都是异常的一种处理方式: 一.ExceptionHandlerExceptionResolv ...
- 【异常检测】孤立森林(Isolation Forest)算法简介
简介 工作的过程中经常会遇到这样一个问题,在构建模型训练数据时,我们很难保证训练数据的纯净度,数据中往往会参杂很多被错误标记噪声数据,而数据的质量决定了最终模型性能的好坏.如果进行人工二次标记,成本会 ...