rt,CF757B
这是我的程序
#include<bits/stdc++.h>
#define LL long long
//英特耐雄纳尔一定要实现
using namespace std;
const int N=1e5+10;
int n,a;
int maxn=1,b[N];
bool vis[N];
int main(){
freopen("sb.in","r",stdin);
freopen("1.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
b[a]++;
}
// sort(a+1,a+n+1);
for(int i=2;i<=100000;i++){
if(vis[i]) continue;
int ans=b[i];
for(int j=2;j<=100000/i;j++){
vis[i*j]=1;
ans+=b[i*j];
}
maxn=max(maxn,ans);
}
cout<<maxn<<endl;
return 0;
}
这是题解(洛谷上是第二篇
#include <bits/stdc++.h>
using namespace std;
int a,ans,mx=1,n,vis[100007];
bool v[100007];
int main(){
//freopen("sb.in","r",stdin);
// freopen("2.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a);
vis[a]++;
}
for(int i=2;i<=100000;i++){
if(v[i]) continue;
ans=vis[i];
for(int j=2;j<=100000/i;j++){
v[i*j]=true;
ans+=vis[i*j];
}
mx=max(mx,ans);
}
printf("%d",mx);
return 0;
}
肉眼已经无法辨别问题所在了,,,
甚至自己写了对拍程序测试,结果是

到现在已经拍到5000+了,但是仍然没有发现问题,测的是1e5的标准数据,,,,求教问题可能出在哪里,提示测试点#1就WA了