HDU5428------The Factor

The Factor

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1005    Accepted Submission(s): 325


提示:找出所有数的质因子,排序取其最小的两个;
Problem Description
There is a sequence of n positive integers. Fancycoder is addicted to learn their product, but this product may be extremely huge! However, it is lucky that FancyCoder only needs to find out one factor of this huge product: the smallest factor that contains more than 2 factors(including itself; i.e. 4 has 3 factors so that it is a qualified factor). You need to find it out and print it. As we know, there may be none of such factors; in this occasion, please print -1 instead.
 

Input
The first line contains one integer T (1T15) , which represents the number of testcases.

For each testcase, there are two lines:

1. The first line contains one integer denoting the value of n (1n100) .

2. The second line contains n integers a1,,an (1a1,,an2×109) , which denote these n positive integers.
 

Output
Print T answers in T lines.
 

Sample Input
  
  
2 3 1 2 3 5 6 6 6 6 6
 

Sample Output
  
  
6 4
 

Source
 

Recommend
hujie   |   We have carefully selected several similar problems for you:   5431  5429  5426  5425  5424

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<vector>
#include<climits>
#include<iomanip>
#define LL long long
#define uing unsigned int
#define uLL unsigned LL
using namespace std;
const int INF =0x3f3f3f3f;
const double PI = acos(-1.0);
const double esp=1e-6;
const int N=5e4+10;
LL prime[N>>2];
bool flag[N];
void getprime()
{
    int k=0;
    for(int i=2; i<N; i++)
    {
        if(!flag[i])
        {
            prime[++k]=i;
        }

        for(int j=1; j<=k&&prime[j]*i<N; j++)
        {
            flag[i*prime[j]]=1;
            if(i%prime[j]==0)
                break;
        }
    }
}
LL a[N+10];
vector<LL>B;
bool cmp(LL x,LL y)
{
    return x<y;
}
int main()
{
    getprime();
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        {
            B.clear();
            for(int i=0; i<n; i++)
            {
                cin>>a[i];
            }
            for(int i=0; i<n; i++)
            {
                for(int j=1; prime[j]*prime[j]<=a[i]; j++)
                {
                    while(a[i]%prime[j]==0)
                    {
                        a[i]/=prime[j];
                        B.push_back(prime[j]);
                    }
                }
                if(a[i]!=1)
                    B.push_back(a[i]);
            }
            if(B.size()<=1)
                printf("-1\n");
            else
            {
                sort(B.begin(),B.end(),cmp);
                cout<<B[0]*B[1]<<endl;
            }
        }

    }
    return 0;
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的兼职网,源码+论文答辩+毕业论文+视频演示 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,蜗牛兼职网当然也不能排除在外。蜗牛兼职网是以实际运用为开发背景,运用软件工程原理和开发方法,采用springboot框架构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。这种个性化的网上蜗牛兼职网特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对蜗牛兼职网而言非常有利。 本蜗牛兼职网采用的数据库是MySQL,使用springboot框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 功能要求:可以管理首页、个人中心、用户管理、企业管理、兼职信息管理、职位申请管理、留言板管理、系统管理等功能模块。 关键词:蜗牛兼职网,springboot框架 MySQL数据库 Java技术
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值