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;
    }
    

      


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


  • 相关阅读:
    数据库创建用户SQL
    团队总结和展示
    第十三周总结
    梦断代码02
    第十二周进度博客
    团队冲刺第十五天
    团队冲刺第十四天
    团队冲刺第一阶段评价
    梦断代码01
    第十一周进度博客
  • 原文地址:https://www.cnblogs.com/Przz/p/5409736.html
Copyright © 2011-2022 走看看