链接:https://www.nowcoder.net/acm/contest/71/A
来源:牛客网

题目描述

给定n个正整数,请找出其中有多少个数x满足:在这n个数中存在数y=kx,其中k为大于1的整数

输入描述:

第一行输入一个n
接下来一行输入n个正整数a

输出描述:

输出符合条件个数
输入例子:
5
1 2 3 4 5
输出例子:
2

-->

示例1

输入

5
1 2 3 4 5

输出

2

说明

5个数中1和2符合条件,1是后面每个数的因子,2是4的因子

备注:

1≤n,a
≤1000000
#include<bits/stdc++.h>
using namespace std;
typedef long long ll; const int inf = 0x3f3f3f3f;
const int maxn = + ;
const int moder = 1e9 + ;
const int K = ;
const int MAXN=;
int cnt[MAXN]; int main()
{
int n;
cin >> n;
for(int i=;i < n;i++)
{
int a;
cin >> a;
cnt[a]++;
} int num = ;
for(int i=;i < MAXN;i++)
{
if(cnt[i] > )
{
for(int j=*i;j < MAXN;j=j+i)
{
if(cnt[j] > )
{
num += cnt[i];
break;
} }
}
}
cout << num << endl;
return ;
}

需要注意的是输入的i可能会重复因此是用 cnt [i] ++;

05-18 10:39