avatar
M*a
1
就是给个数组A都是正整数,然后一个范围[1,N],返回[1,N]当中不能被任何A的元素
整除的数字的个数。
就这么简单,怎么做。
什么一个一个除着看的做法就不用说了。
avatar
M*a
3
不能被任何A的元素整除
还要公式。。。估计就不是这么做了。

【在 g****o 的大作中提到】
: 能被任何A的元素整除?
: 你是说互质吗?
: 有公式
: http://en.wikipedia.org/wiki/Euler's_totient_function

avatar
A*g
4
如果A小,N大
找出A里最大和最小,和N比一下,然后把A里的每个数都从1开始找倍数,然后从[1,N]
里拿走
avatar
l*b
5
应该是假设A unsorted吧 有个不太好的思路 需要大概O(n)时间 和O(n)空间 但是
感觉空间还可以优化 我先说下思路:
把1-N所有N个数放进一个set 然后遍历A数组 假设A = {6,7, 9,2} (是不是A里要是有1
就可以直接返回0了) A[0] = 6, 所有就把6从set里删除(在6 < n的前提下)。。然
后 遍历所有6的倍数 知道这个倍数大于N了 就结束 继续下一个。。
好吧。。时间复杂度好像不止O(n - -|||)
avatar
l*8
6
1. 求A的最小公倍数x
2. for i = 1.. N
if GCD(i, x) == 1
print i

【在 M*******a 的大作中提到】
: 就是给个数组A都是正整数,然后一个范围[1,N],返回[1,N]当中不能被任何A的元素
: 整除的数字的个数。
: 就这么简单,怎么做。
: 什么一个一个除着看的做法就不用说了。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。