HDU5428质因数分解变形式
2015-09-07 18:26
267 查看
这题当时一定是脑抽了,已经想到了是质因数分解之后的最小俩个质因数的相乘,
竟然还写错,int以内的质数有很多,看来我是想多了。
其实最简单的方法就是把每个数质因数分解之后加入vector中排个序即可,
然后直接直到vector的个数,很简单。另外注意这题要用LL。
竟然还写错,int以内的质数有很多,看来我是想多了。
其实最简单的方法就是把每个数质因数分解之后加入vector中排个序即可,
然后直接直到vector的个数,很简单。另外注意这题要用LL。
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<string> #include<map> #include<cctype> #include<cmath> #include<set> #include<vector> #include<queue> #include<stack> #include<algorithm> #define LL long long using namespace std; const LL N=(2*1e9)+10; int main() { LL t; cin>>t; while(t--) { LL n; cin>>n; /* LL a[110]; for(LL i=0;i<n;i++) cin>>a[i]; vector<LL> v; for(LL i=0;i<n;i++) { for(LL j=2;j<=sqrt(a[i]*1.0);j++) while(a[i]%j==0) { a[i]/=j; v.push_back(j); } if(a[i]!=1) v.push_back(a[i]); }*/ vector<LL> v; for(LL i=0;i<n;i++) { LL temp; cin>>temp; for(LL j=2;j*j<=temp;j++) while(temp%j==0) { temp/=j; v.push_back(j); } if(temp!=1) v.push_back(temp); } sort(v.begin(),v.end()); if(v.size()<2) cout<<-1<<endl; else cout<<v[0]*v[1]<<endl; } return 0; }
相关文章推荐
- quick-cocos2d-x基于源码加密打包功能的更新策略(1)
- POJ2528 Mayor's posters 线段树区间更新+离散化
- 最小生成树--matlab实现
- 1072. Gas Station (30)
- spring mvc3+默认首页设置问题
- 构造 Bubble Cup 8 - Finals D. Tablecity
- HDFS配置
- NFS安装和挂载
- 舟子传
- Eclipse ADT插件和Android SDK使用离线包升级笔记
- Spring配置切面事务
- php模式设计之 观察者模式
- AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
- JAVA编程思想:第10章 内部类
- cubieboard在移植RT3070时,出现“rt2x00lib_request_firmware: Error - Failed to request Firmware”解决方案
- $.ajax传递字符串到后台,后台返回json对象
- Linux进程间通信——消息队列
- 大数模板
- c#方法 最大值我最小值
- 幸福是什么