蚂蚁笔试
有没有佬讲下第三题
全部评论
欧拉筛找出1e6以内所有质数primes。求输入数组sum,遍历primes, 如果sum%primes[i]==0 && sum/primes[i]>=n, 则进入下一步,否则直接跳过。下一步,进行一些条件过滤,如果该质数是偶数(即为2),则数组中不能有奇数(这在开始读数据时就可以判断),否则直接跳过;如果奇数,则数组中的偶数至少应变为该奇数*2,必须满足sum/primes[i]>=n+ou(偶数个数),否则跳过。这种做法可以过95%(过滤条件并不完善,所以会有没考虑到的情况)

他这题目意思无非就是总和不能改变,单个数的奇偶不能变,你把和一加然后把他的素数都拿出来尝试。如果这个素数是偶数,那么之前的数组里就不能有奇数,不然就直接pass,如果全偶数看一下够不够一人分一个的,如果够就OK,不够也pass如果这个素数是奇数,也到原数组里面去分,假如原数组里面有x奇y偶,那么你至少要分x+2y这个素数出来,如果不够分就pass,如果够分看看分完之后还剩多少个这个素数,如果剩偶数个就OK,剩奇数个pass
算法还是开发卷
相关推荐
牛泪中:真实,正如高中半个月放假一次,把学习资料带回家幻想能学习一样
点赞 评论 收藏
分享