zoukankan      html  css  js  c++  java
  • Codeforces Round #560 (Div. 3) D题

    题目网址:http://codeforces.com/contest/1165/problem/D

    题目大意:给出n个数,判断这n个数是否是某个数的所有因子(除了1和本身),如果是输出这个数,反之输出-1

    题解:注意要判断全部因子,显然如果这n个数是所有因子,那么原数必是 min{ a[ i ] } * max{ a[ i ] },则先判断n个数中 a[ i ] * a[n - i + 1]是否互相相同,再判断原数的因子数和n的关系即可。

     1 #include<bits/stdc++.h>
     2 #define ll long long
     3 using namespace std;
     4 const int maxn=2e6+7;
     5 ll a[maxn];
     6 ll count(ll k)
     7 {
     8     ll ans=0;
     9     for(ll i=2;i<=sqrt(k);i++) {
    10         if(k%i==0) {
    11             if(i*i==k) ans+=1;
    12             else ans+=2;
    13         }
    14     }
    15     return ans;
    16 }
    17 int main()
    18 {
    19     int T;
    20     cin>>T;
    21     while(T--) {
    22         int n;
    23         cin>>n;
    24         for(int i=1;i<=n;i++) scanf("%I64d",&a[i]);
    25         sort(a+1,a+1+n);
    26         ll res=a[1]*a[n];
    27         int flag=1;
    28         for(int i=1;i<=n/2;i++) {
    29             if(a[i]*a[n-i+1]!=a[i+1]*a[n-i]) {
    30                 flag=0;break;
    31             }
    32         }
    33         if(flag==0) {
    34             cout<<-1<<endl;continue;
    35         }
    36         if(count(res)==n) cout<<res<<endl;
    37         else cout<<-1<<endl;
    38     }
    39 } 
    View Code
  • 相关阅读:
    centos安装openssl
    centos安装tomcat
    centos安装jdk文件
    shell常用命令
    linux命令: Netstat
    unix-软件安装
    页面校验方式
    软件性能的几个术语指标
    亚马逊的技术架构是怎么样的
    数据挖掘-什么是数据挖掘
  • 原文地址:https://www.cnblogs.com/duxing201806/p/10885994.html
Copyright © 2011-2022 走看看