牛客练习赛77 小G的GCD

小G的GCD

小G给你两个数n,k
我们定义F(x)为i从1~x i%k==0的i的和
现在希望你求出sum i=1…n F(i)

输入样例

2 1

输出样例

4

解题思路

假设在i位置F(i)被k整除,那么在后面(n-i)个位置里面他依然会被K整除
所以加上本身答案+n-i+1

AC代码

#include <iostream>
using namespace std;
int main()
{
    
    
long long n,k;
    cin>>n>>k;
    long long ans=0;
    for(int i=1;i<=n;i++)
    {
    
    
        if(i%k==0)
            ans+=i*(n-i+1);
    }
    cout<<ans;
}

猜你喜欢

转载自blog.csdn.net/qq_34832548/article/details/114380947