任意个数的最大公约数和最小公倍数
#include<iostream>
#include<stack>
using namespace std;
const int MaxSize=100;
int gcd(int a,int b)
{
int c;
while(a%b!=0)
{
c=a%b;
a=b;
b=c;
}
return b;
}
int main()
{
stack<int>S,Q;
int num,i;
cout<<"请输入有多少个数:";
cin>>num;
int number[MaxSize];
for(i=0;i<num;i++)
{
cin>>number[i];
S.push(number[i]);
Q.push(number[i]);
}
int a=S.top();
S.pop();
int b=S.top();
S.pop();
int e=Q.top();
Q.pop();
int d=Q.top();
Q.pop();
int c=(a*b)/gcd(a,b);
int f=gcd(d,e);
while(!S.empty()&&!Q.empty())
{
a=S.top();
S.pop();
c=(a*c)/gcd(c,a);
d=Q.top();
Q.pop();
f=gcd(f,d);
}
cout<<"这几个数的最大公倍数"<<endl;
cout<<c<<endl;
cout<<"这几个数的最小公约数"<<endl;
cout<<f<<endl;
}