c++ 给定k个正整数。写程序计算给定的k个正整数中,是2520整数倍的个数
时间: 2024-02-05 18:11:48 浏览: 73
基于C++,编写一个程序求一组正整数的模 适合新手
可以先计算这k个正整数的最小公倍数lcm,然后再求出2520的倍数n,最后统计这k个正整数中有多少个是n的因数即可。
代码如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a / gcd(a, b) * b;
}
int main() {
int k;
cin >> k;
vector<int> nums(k);
for (int i = 0; i < k; i++) {
cin >> nums[i];
}
int lcm_num = nums[0];
for (int i = 1; i < k; i++) {
lcm_num = lcm(lcm_num, nums[i]);
}
int n = lcm_num / 2520;
int count = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
count++;
}
}
cout << count << endl;
return 0;
}
```
其中,gcd函数用于求最大公约数,lcm函数用于求最小公倍数。
阅读全文