http://codeforces.com/problemset/problem/1025/B

大意:n对数对(ai,bi),求任意一个数满足是所有数对中至少一个数的因子(大于1)

分析:

  1. 首先求所有数对的lcm,把所有数对的两个数的素因子并集求出来
  2. 求所有lcm的gcd,这样做求出数对之间的公共素因子
  3. 注意,公共素因子可能在某一组数对中状态为某一部分是ai的素因子而剩下的一部分是bi的素因子,因此可能会导致最后答案既不是ai的因子又不是bi的因子,因此求出来的最后答案得再和每个数对中的a或b求一下最大公约数
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN=+;
ll a[MAXN],b[MAXN]; int main()
{
int n;
scanf("%d",&n);
for(int i=;i<n;i++)
scanf("%lld %lld",&a[i],&b[i]);
ll gcd=a[]*b[]/__gcd(a[],b[]);
for(int i=;i<n;i++)
gcd=__gcd(gcd,a[i]*b[i]/__gcd(a[i],b[i]));
if(gcd==)
{
printf("-1\n");
return ;
}
ll temp;
for(int i=;i<n;i++)
{
temp=__gcd(gcd,a[i]);
if(temp>){
gcd=temp;
continue;
}
temp=__gcd(gcd,b[i]);
if(temp>)
gcd=temp;
}
printf("%lld\n",gcd);
return ;
}

CodeForces - 1025B Weakened Common Divisor的更多相关文章

  1. codeforces 1025B Weakened Common Divisor(质因数分解)

    题意: 给你n对数,求一个数,可以让他整除每一对数的其中一个 思路: 枚举第一对数的质因数,然后暴力 代码: #include<iostream> #include<cstdio&g ...

  2. codeforces#505--B Weakened Common Divisor

    B. Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input ...

  3. CF1025B Weakened Common Divisor 数学

    Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input st ...

  4. Codeforces #505(div1+div2) B Weakened Common Divisor

    题意:给你若干个数对,每个数对中可以选择一个个元素,问是否存在一种选择,使得这些数的GCD大于1? 思路:可以把每个数对的元素乘起来,然后求gcd,这样可以直接把所有元素中可能的GCD求出来,从小到大 ...

  5. 【Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) B】Weakened Common Divisor

    [链接] 我是链接,点我呀:) [题意] 给你n个数对(ai,bi). 让你求一个大于1的数字x 使得对于任意的i x|a[i] 或者 x|b[i] [题解] 求出第一个数对的两个数他们有哪些质因子. ...

  6. CF #505 B Weakened Common Divisor(数论)题解

    题意:给你n组,每组两个数字,要你给出一个数,要求这个是每一组其中一个数的因数(非1),给出任意满足的一个数,不存在则输出-1. 思路1:刚开始乱七八糟暴力了一下果断超时,然后想到了把每组两个数相乘, ...

  7. CF1025B Weakened Common Divisor【数论/GCD/思维】

    #include<cstdio> #include<string> #include<cstdlib> #include<cmath> #include ...

  8. CF1025B Weakened Common Divisor

    思路: 首先选取任意一对数(a, b),分别将a,b进行因子分解得到两个因子集合然后取并集(无需计算所有可能的因子,只需得到不同的质因子即可),之后再暴力一一枚举该集合中的元素是否满足条件. 时间复杂 ...

  9. CF1025B Weakened Common Divisor 题解

    Content 定义 \(n\) 个数对 \((a_1,b_1),(a_2,b_2),(a_3,b_3),...,(a_n,b_n)\) 的 \(\text{WCD}\) 为能够整除每个数对中至少一个 ...

随机推荐

  1. linux中的 tar命令的 -C 参数,以及其它一些参数

    tar命令的-C参数    $ tar -cvf file2.tar /home/usr2/file2 tar: Removing leading '/' from members names hom ...

  2. 3 Django 简介

    MVC 与 MTV 模型 MVC Web 服务器开发领域里著名的 MVC 模式,所谓 MVC 就是把 Web 应用分为模型 (M),控制器(C) 和视图 (V) 三层,他们之间以一种插件式的.松耦合的 ...

  3. RocketMQ 自定义文件路径

    一 .1. 修改store路径2. 修改logs路径3. 修改rmq_bk_gc.log路径4. 修改rmq_srv_gc.log路径二 .1. 获取正确的rocketmq 源码2. 地址:https ...

  4. Java Annotation Processors

    Table Of Contents 1. Introduction 2. When to Use Annotation Processors 3. Annotation Processing Unde ...

  5. 基于jCOM搭建Java-微软信息桥梁(下)

    第一部分析了BEA提供的Java/COM互操作解决方案—jCOM的实现原理:本文是第二部分,比较全面地分析了Weblogic Server的jCOM实现技术之后,通过一个具体实例来说明了jCOM的具体 ...

  6. underscore概况

    看的是1.3.3,这个版本的中文源码解释比较多. 函数的中文注释:http://www.css88.com/doc/underscore1.5.2/#difference 源码的中文注释:http:/ ...

  7. jsp中路径的写法

    在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况 代码” ${pageContext.request.context ...

  8. 使用JDK实现动态代理

  9. 传智播客.NET视频学习课件

    传智播客.NET视频学习课件访问.NET网站了解更多课程详情http://net.itcast.cn(小提示:为什么本书中超链接打不开?)此套课件是伴随 传智播客.net实况教学视频 (小提示:为什么 ...

  10. linux gitlab-ctl reconfigure报错问题修复 502

    Running handlers: There was an error running gitlab-ctl reconfigure: bash[migrate gitlab-rails datab ...