求1到N中所有既不是A的倍数,也不是B的倍数的数的总和 输入 一行三个整数NN AA BB 1 \le N,A,B \le 10^91≤N,A,B≤10 9 输出 输出一个整数表示答案
时间: 2024-01-16 14:04:51 浏览: 137
好的,根据你的要求,我来给出解题思路和代码实现。
我们可以先求出1到N中所有A的倍数的和sum1和所有B的倍数的和sum2,然后再求出1到N的和sum3,最后答案即为sum3 - (sum1 + sum2)。
对于求和的过程,我们可以使用等差数列求和公式。代码实现如下:
```
#include <iostream>
using namespace std;
int main() {
long long n, a, b;
cin >> n >> a >> b;
long long sum1 = (n / a) * (a + a * ((n / a) - 1)) / 2;
long long sum2 = (n / b) * (b + b * ((n / b) - 1)) / 2;
long long sum3 = (n * (n + 1)) / 2;
cout << sum3 - (sum1 + sum2) << endl;
return 0;
}
```
输入样例:
```
10 2 3
```
输出样例:
```
34
```
希望可以帮到你!
阅读全文