题解:P10263 [GESP202403 八级]公倍数问题
yu1128_AKIOI · · 题解
思路
考虑暴力做法,直接枚举
下面来说正解。
对于每一个
最后,用 long long。
代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m,k,ans;
signed main(){
cin>>n>>m>>k;
int a[1000010]={},b[1000010]={};
for(int i=1;i<=n;i++){
for(int j=i;j<=k;j+=i){
a[j]++;
}
}
for(int i=1;i<=n;i++){
for(int j=i;j<=k;j+=i){
a[j]++;
}
}
for(int i=1;i<=k;i++) ans+=i*a[i]*b[i];
cout<<ans;
}