#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize("Ofast","inline","-ffast-math")
#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#include<bits/stdc++.h>
using namespace std;
int cnt,cnt2;
int y[1010],b[1010];
bool f(int m){
if(m==1){
return 0;
}
for(int i=2;i<=sqrt(m);i++){
if(m%i==0){
return 0;
}
}
return 1;
}
int main(){
long long a;
cin>>a;
for(int i=1;i<=a;i++){
cin>>y[i];
}
for(int i=1;i<=a;i++){
for(int j=1;j<=y[i];j++){
if(y[i]%j==0&&f(j)){
b[cnt]++;
}
}
cnt++;
}
for(int i=0;i<=cnt-1;i++){
cout<<b[i]<<" ";
}
cout<<endl;
for(int i=1;i<=cnt-1;i++) {
bool flag=false; //定义一个标志位,用来记录某轮排序是否有数据交换发生
for(int j=1;j<=cnt-i;j++) {
if(b[j]<b[j+1]) {
swap(y[j],y[j+1]);
flag=true; //有数据交换,则改变标志位的值
}
}
if(flag==false) //如果标志位的值没改变,说明本轮排序没有数据交换,即数组本身已经有序了,那么退出循环
break;
}
cout<<y[1];
return 0;
}
题目详情
题目描述 Description
酷酷刚刚学完数学中的质因数知识,他知道任意一个大于1的自然数都有质因数。
老师想考一考酷酷有没有掌握质因数的判断方法,他列出了n个整数,让酷酷在这些整数中找到拥有质因数个数最多的整数,这可把酷酷难坏了。
请你编写一个程序,找出输入的n个整数中含质因数个数最多的整数。如果有多个含质因数个数最多的数字,则输出最靠前的那一个 。
提示:运用埃氏筛的思想,对所有质数的倍数做处理。
输入描述 Input Description
两行,第一行一个整数n,表示输入的整数的个数
第二行,n个整数
输出描述 Output Description
一个整数,表示整数中质因数最多的整数
样例输入 Sample Input
5
47 68 23 77 50
样例输出 Sample Output
68
数据范围及提示 Data Size & Hint
n<=1000,1000<=每个整数<=100000
在算一个整数的质因数个数时,相同的质因数算作一个。
比如8=2×2×2,则8仅有一个质因数2。