问题标题: 酷町堂:3904不是倍数的数 Runtime Error 0!!!

0
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;
}

找错!!


0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

数组开大一点

我要回答