题目描述给你一行 �n 个数 ��a i 你可以选择任意一个 ��a i 然后将其修改为任意数值 使得所有 �n 个数的最大公约数最大请给出修改数列后的最大公约数数据格式输入格式第一行一个整数 �n第二行 �n 个整数 ��a i 输出格式输出一个整数 表示修改数列后的最大公约数样例输入数据 134 5 6输出数据 12输入数据 238 9 72输出数据 29数据范围1=�=1051=
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
ifstream fin("gcd.in");
ofstream fout("gcd.out");
int n;
fin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
fin >> nums[i];
}
int maxGcd = 0;
for (int i = 0; i < n; i++) {
vector<int> temp(nums);
for (int j = 1; j <= 100; j++) {
temp[i] = j;
int currGcd = temp[0];
for (int k = 1; k < n; k++) {
currGcd = gcd(currGcd, temp[k]);
}
maxGcd = max(maxGcd, currGcd);
}
}
fout << maxGcd << endl;
fin.close();
fout.close();
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/itVG 著作权归作者所有。请勿转载和采集!