zoukankan      html  css  js  c++  java
  • 2019年四月四日D题

    题意:

    第一行输入代表下面输入的测试数对的个数

    接下来的每个数对中 两个数中可以任意选择一个作为判断数字 选完n个之后 这些数对的最小公因数即为答案

    换言之第一组选18 15 12得3,也可以选18 24 12得6或3或2 输出一个答案即可。

    #include <bits/stdc++.h>
    
    using namespace std;
    
    typedef long long int ll;
    
    ll A[1000000];
    ll B[1000000];
    
    
    
    int main () {
    	ios::sync_with_stdio(false);
    	int n;
    	cin >> n;
    	ll ans = 0;
    	ll x, y;
    	for (int i = 0; i < n; ++i) {
    		cin >> x >> y;
    		A[i] = x;	B[i] = y;
    		ans = __gcd(ans, x * y);	// 记录乘起来的最大公约数 这个数一定大于等于输入的数 并且答案一定是这个的最小的除了1的因数
    	}
    	if (ans == 1) {
    		cout << -1 << endl;
    		return 0;
    	}
    	for (int i = 0; i < n; ++i) {
    		if (__gcd(A[i], ans) > 1) {  // 找出存在的更小的因子
    			ans = __gcd(A[i], ans);
    		}
    		else
    			ans = __gcd(B[i], ans);
    	}
    	cout << ans << endl;
    }
    
    作者:LightAc
    出处:https://www.cnblogs.com/lightac/
    联系:
    Email: dzz@stu.ouc.edu.cn
    QQ: 1171613053
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    MySQL的注入过程
    nmap 扫描器的功能
    用dvwa演示带有用户令牌(user_token)的暴力破解
    在python中安装requests模块
    如何发现struts2漏洞
    vs2017的主题颜色的配置
    在vs上开发linux c++
    linux主机之间的SSH链接
    verilog 实用的小技巧
    verilog 实现DDS
  • 原文地址:https://www.cnblogs.com/lightac/p/10656863.html
Copyright © 2011-2022 走看看