首页 > 试题广场 >

非整除集合

[编程题]非整除集合
  • 热度指数:2732 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个由正整数组成的集合S,找出一个最大的子集合S,使得S中任意两个数字的和都不能被K整除。

例如S=「10,10,12,19,22,24,25」,K=4。此时S最多只能取3个数,可能的取值为「10,12,25」或者「19,22,24」等。

输入描述:
输入为两行,第一行两个数字,分别表示集合S的元素数量N和K。第二行为N个数字,分别是S的各个元素值。


数据范围:
1 < N < 10^5
1 < K < 100
1 < S[i] < 10^9


输出描述:
输出为一个数字,集合S的最大长度。
示例1

输入

4 3
1 7 2 4

输出

3

这道题你会答吗?花几分钟告诉大家答案吧!