0
已解决
3904不是倍数的数 Runtime Error 0!!!
22豆!!
3904 不是倍数的数
经验值:0 时间限制:1000毫秒 内存限制:128MB
题目描述 Description
给定n(1<=n<=30000)个不重复的正整数,找出其中有多少个数i(1<=i<=100000) 满足:在此n个数中,i不是其他任何数的倍数。
输入描述 Input Description
两行,第一行,一个正整数n;
第二行,n个正整数,用空格隔开
输出描述 Output Description
一个正整数,表示满足条件的数的个数
样例输入 Sample Input
5 4 5 10 11 12
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
在这些数中,有3个数:4,5,11不是其他任何数的倍数
0分代码:
#include<bits/stdc++.h>
using namespace std;
int a[33333],b[33333],t[100011];
int main()
{
int n,cnt=0,ans=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
t[a[i]]=1;
ans=max(ans,a[i]);
}
for(int i=1;i<=n;i++){
for(int j=a[i]*2;j<=ans;j+=a[i]){
if(t[j]){
b[j]=1;
}
}
}
for(int i=1;i<=n;i++){
if(b[a[i]]==1)
cnt++;
}
cout<<n-cnt;
return 0;
}
找错!!