HDOJ 5428 The Factor(分解质因数)
来源:互联网 发布:法兰克王国 知乎 编辑:程序博客网 时间:2024/06/02 05:42
The Factor
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2415 Accepted Submission(s): 729
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 (1≤T≤15) , which represents the number of testcases.
For each testcase, there are two lines:
1. The first line contains one integer denoting the value ofn (1≤n≤100) .
2. The second line containsn integers a1,…,an (1≤a1,…,an≤2×1 09 ) , which denote these n positive integers.
For each testcase, there are two lines:
1. The first line contains one integer denoting the value of
2. The second line contains
Output
Print T answers in T lines.
Sample Input
231 2 356 6 6 6 6
Sample Output
64
Source
BestCoder Round #54 (div.2)
思路:
这个题的题意就是,给你n个数,你要找出它们n个数的乘积所得的那个数的最小因素。所谓最小因素就是指 它是n个数乘积的因数,并且它含有至少三个因数(包括它自己)。就比如1*2*3所得结果是6,6的因子有2、3、6三个数。再比如6*6,36的因子有很多,但是它的最小因素是4,因为它的因子有2、2、4三个数。就是已知乘积让你找这样的最小因素。对于每一个数字,它有用的部分其实只有它的所有质因子(包括相等的)。求出所有数的所有质因子中最小的两个,相乘就是答案。如果所有数字的质因子个数不到两个,那么就是无解。所以说这个题的实质也就是分解质因数。
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int a[1000000],vis[1000000];int countt;void prime(int x)//质因数分解 { for(int i=2;i<=sqrt(x);i++) { while(x%i==0) { vis[countt]=i; countt++; x=x/i; } } if(x!=1) vis[countt++]=x;}int main(){ int T; cin>>T; while(T--) { int num; cin>>num; countt=0; for(int i=0;i<num;i++) { cin>>a[i]; if(a[i]!=1) prime(a[i]); } if(2+countt>=4) { sort(vis+0,vis+countt); cout<<1LL*vis[0]*vis[1]<<endl; } else cout<<"-1"<<endl; } return 0;}
0 0
- HDOJ 5428 The Factor(分解质因数)
- hdu(5428)——The Factor(质因数分解)
- hdoj5428The Factor【分解质因数】
- hdoj 4497(gcd&lcm分解质因数)
- HDOJ 5778 abs(质因数分解)
- hdu 5428 The Factor(分解质因子)
- HDU 5428 The Factor(分解质因子)
- HDU 5428 The Factor(分解质因子)
- hdu 5428 The Factor(唯一分解定理)
- hdu 5428 the factor(分解质因子)
- HDU 5428-The Factor(分解质因子)
- HDOJ 4497 GCD and LCM(质因数分解)
- BC水题--The Factor(质因分解)
- poj 3421 X-factor Chains(分解质因数+组合数学)
- POJ 3421 X-factor Chains 分解质因数 排列组合
- hdu 5428(质因数分解)
- 分解质因数()
- poj1142(质因数分解)
- splay伸展树
- 递归的应用-获取body的后代元素
- CodeForces 339D Xenia and Bit Operations 数据结构+线段树+点更新
- Java 中的 static 使用之静态变量·静态方法·静态初始化块
- java中的冒泡排序
- HDOJ 5428 The Factor(分解质因数)
- 绝对定位的特点
- [平衡树] [Tyvj P1728] 普通平衡树 (balanced)
- 开始ITGEGE教育社区的视频录制----嵌入式基础知识讲解
- HDOJ 5524 Subtrees(二叉树)
- BestCoder Round #1
- document.write()用法
- Binary Watch_太阁竞赛A
- HDOJ 5734 Acperience(数学运算)