题目:
Reisen has a sequence A with n numbers.
For some reason,Reisen wants to find the longest sub-sequence B that the GCD of all number in B will not be 1.
Reisen wants to know the length of B,please tell her the answer.
题解:
枚举约数,筛法。统计每个约数在A数组中的出现次数。统计最大值
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1000000+100;
int num[maxn];
int main()
{
int n,i,j,sum,t,mmax;
cin>>n;
mmax=0;
for(i=1;i<=n;i++) {
cin>>t;
num[t]++;
mmax=max(mmax,t);
}
int ans=0;
for(i=mmax;i>=2;i--) {
sum=0;
for(j=i;j<=mmax;j+=i) {
sum+=num[j];
ans=max(ans,sum);
}
}
printf("%d\n",ans);
return 0;
}