zoukankan      html  css  js  c++  java
  • hdu 5428

    题意:一个数是这n个数的乘,找出它一个不是素数的最小因子

    求出所有数的所有质因子中最小的两个,相乘就是答案。如果所有数字的质因子个数不到两个,那么就是无解。


    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    #define maxn 105
    #define mod 1000000007
    int a[maxn];
    int num[maxn];
    
    int main()
    {
        int T;
        scanf("%d",&T);
        while(T--)
        {
            int n;
            ll x;
            int len = 0;
            scanf("%d",&n);
            for(int i = 1; i <= n; i++)
            {
                scanf("%I64d",&x);
                for(int j = 2; j *j<=x; j++)
                {
                    while(x%j == 0)
                    {
                        x /= j;
                        num[len++] = j;
                    }
                }
                if(x > 1)
                    num[len++] = x;
            }
            sort(num,num+len);
            if(len < 2)
                printf("-1
    ");
            else
            {
                printf("%I64d
    ",(ll)num[0] * num[1]);
            }
        }
        return 0;
    }
    

      


    /*我只是希望自己尽可能做得比别人好而已,而且,讨厌失败,更讨厌失败了却还不知道努力*/


  • 相关阅读:
    ASP.NET 5
    asp.net web api
    PowerShell 常用命令
    WinDbg
    Visual Studio Online
    asp.net authentication
    CoreOS
    解决download.msdn.microsoft.com无法正确解析而无法下载的问题
    nodejs express
    移动平台WEB前端开发技巧汇总
  • 原文地址:https://www.cnblogs.com/Przz/p/5409736.html
Copyright © 2011-2022 走看看