小G的GCD

小G的sigma

https://ac.nowcoder.com/acm/problem/218397

题目

给定两个数 n,k
定义 F(x) 为 i 从 1~x i%k==0 的 i 的和
求出

解题思路

F(x):
    sum = 0
    for i = 1 to x:
        if i%k == 0:
            sum += i

int F(int x){
    sum = 0;
    for(i=k; i<x; i+=k)
        sum += i;
    // 上面的 for 循环是一个等差数列,即 sum = k + 2*k + 3*k + ...
}

C++代码

#include<iostream>
using namespace std;

inline long long f(long long x, long long k){
    long long n = x / k;
    long long sum = (k+n*k)*n/2;
    return sum;
}

int main(){
    int n, k;
    cin >> n >> k;
    long long ans = 0;
    for(int i=1; i<=n; ++i){
        ans += f(i,k);
    }
    cout << ans << endl;
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
找个工作&nbsp;学历是要卡的&nbsp;要求是高的&nbsp;技能不足是真的&nbsp;实习经验是0的&nbsp;简历无处可写是事实的&nbsp;钱不好赚是真的&nbsp;想躺平又不敢躺&nbsp;也不甘心躺&nbsp;怕自己的灵感和才华被掩埋甚至从未被自己发现&nbsp;又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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