牛客练习赛14A(唯一分解定理)

https://www.nowcoder.com/acm/contest/82/A

首先这道题是求1~n的最大约数个数的,首先想到使用唯一分解定理,约数个数=(1+e1)*(1+e2)..(1+en),由公式可知取质数时,后面的质数个数应小于等于前面的(也并不是后面的越小越好,只是不应该大于前面的,因为效果是一样的),因为后面的数大,而对约数个数的影响却都一样

而n<=1000000000000000000,数据超大,如果一个一个遍历一定会TLE,而其实有很多数是不需要被遍历的(比如质数,或者是某些取大质数个数多于小质数个数的数),而如果单纯地使用for循环遍历,是无法跳过某些不可能的数的,所以应使用dfs,通过除去不可能数进行剪枝完成AC。

 

转载于:https://www.cnblogs.com/MekakuCityActor/p/8681838.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值