首页 > 其他 > 详细

lightoj 1289 LCM from 1 to n

时间:2014-03-15 17:21:57      阅读:491      评论:0      收藏:0      [点我收藏+]

题意: 求LCM(1, 2, 3, ... n)的值mod 2^32

思路:很显然我们是要求所有的 <=n 的素数的 <=n 的最高次的乘积,比如n=10,我们要求的是2^3 * 3^2 * 5 * 7,素数的幂次很明显是随着素数的增大而减小的,所以可以预处理出素数后然后再处理出一个前缀和,然后从小到大枚举幂次,通过二分查找该幂次下最大的素数是多少,每次答案乘上这个前缀和即可。

注意这里的n<=10^8,开bool vis判断素数肯定开不下,所以我用了一个unsigned int,一个就可以表示32个数,这样就不会MLE了~



lightoj 1289 LCM from 1 to n,布布扣,bubuko.com

lightoj 1289 LCM from 1 to n

原文:http://blog.csdn.net/jayye1994/article/details/21275737

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!