输入n个整数,求出相邻两个整数的最大公约数,输出结果。C++
时间: 2023-05-30 21:01:47 浏览: 53
#include<stdio.h>
int gcd(int a,int b) //辗转相除法求最大公约数
{
int t;
while(b!=0)
{
t=b;
b=a%b;
a=t;
}
return a;
}
int main()
{
int n,a[100],i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
printf("%d ",gcd(a[i],a[i+1]));
printf("\n");
return 0;
}
相关问题
C++输入两个正整数m和n求其最大公约数和最小公倍数
以下是C++代码实现:
```c++
#include <iostream>
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 * b / gcd(a, b);
}
int main() {
int m, n;
cout << "请输入两个正整数m和n:" << endl;
cin >> m >> n;
// 求最大公约数
int max_common_divisor = gcd(m, n);
cout << "最大公约数为:" << max_common_divisor << endl;
// 求最小公倍数
int min_common_multiple = lcm(m, n);
cout << "最小公倍数为:" << min_common_multiple << endl;
return 0;
}
```
输入示例:
```
请输入两个正整数m和n:
36 48
```
输出示例:
```
最大公约数为:12
最小公倍数为:144
```
输入两个正整数求最大公约数C++
以下是 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int num1, num2;
cout << "请输入两个正整数:" << endl;
cin >> num1 >> num2;
// 求最大公约数
int gcd = 1;
for (int i = 1; i <= num1 && i <= num2; ++i) {
if (num1 % i == 0 && num2 % i == 0) {
gcd = i;
}
}
// 输出结果
cout << num1 << "和" << num2 << "的最大公约数为:" << gcd << endl;
return 0;
}
```
该程序通过暴力枚举的方式找到两个数的最大公约数,时间复杂度为 $O(\min\{num1, num2\})$。如果需要求多组数据的最大公约数,可以将代码封装为一个函数,然后在主函数中循环调用即可。