(每日一练28834)题目名称:去除整数

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-04-24 14:40:17

已知存在集合A包含n个整数,从1到n。 存在m个整数a[1..m]。 在集合A中去除这m个整数的的倍数。 输出集合中包含的元素的个数。

第一行输入n,m。(1<=n<=1e9,1<=m<=10) 第二行输入m个32位整数。

输出集合中包含元素的个数。

例如:n,m,arr = 94088440, 2, [515, 252],输出 93533102

嗯,这个例如是老顾自己加的,也是第一个用例,知道有大数即可。

n,m = map(int,input().split())
arr = list(map(int,input().split()))
u = set()
for v in arr:
    u = u.union(set(range(v,n+1,v)))
print(n - len(u))

而 es6 中,也追加了 Set 的支持,所以还是很友好的,不过对于大数直接转 Set ,还是比较费劲,容易超出内存

a = Array.from(readline().split(' ')).map(x => parseInt(x))
b = Array.from(readline().split(' ')).map(x => parseInt(x))
z = new Set()
for (var i = 0 ; i < a[1] ; i ++){
    for (var j = 0; j < Math.floor(a[0] / b[i]);j++)
        z.add(b[i] * (j + 1))
}
print(a[0] - z.size)
...全文
96 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧