小编Joh*_*eau的帖子

求所有整数 1 到 N 的最大奇数除数之和

我得到一个正整数 N。 f(N) 是 N 的最大奇数除数。

求总和 (f(1)+f(2)+f(3)+....f(N))%m。

如果 N 的数量级为 10^18 而 m 最高可达 10^9,那么这种更快的算法应该是什么?

示例蛮力算法:

int sum=0;
int a[n+1];
for(int i=1;i<=n;i++){
    if(i%2!=0)
        a[i] = i;
    else
        a[i] = a[i/2];
}
for(int i=1;i<=n;i++){
    sum+=a[i];
}
cout<<sum;
Run Code Online (Sandbox Code Playgroud)

c++ algorithm math

2
推荐指数
1
解决办法
352
查看次数

标签 统计

algorithm ×1

c++ ×1

math ×1