题解 | 【模板】整除分块

【模板】整除分块

https://www.nowcoder.com/practice/6b0b510b32484281bd21abb71ef7ba0b

就是把相同的数值找出来,直接乘,不用遍历,减少复杂度。

理解起来还行,做起来有点难

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        long n=in.nextLong();
        long  ans=0;
        for(long l=1,r;l<=n;l=r+1){
            long v=n/l;
            r=n/v;
            ans+=(r-l+1)*v;

        }
        System.out.println(ans);
    }
}

全部评论

相关推荐

notbeentak...:真的nc,算毕业6月份,要给这种b公司打半年多白工😅
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务