求多个数最小公倍数和最大公约数
求两个数最大公约数
int gcd(int n,int m) { return m>0?gcd(m,n%m):n; }
求两个数最小公倍数
int lcm(int n,int m,int r) { return n*m/r;//n,m分别是两个数,r是两个数的最大公约数 }
求n个数的最小公倍数
#include<iostream> using namespace std; int gcd(int n,int m) { return m>0?gcd(m,n%m):n; } int lcm(int n,int m,int r) { return n*m/r;//n,m分别是两个数,r是两个数的最大公约数 } int main() { int n,k; int a[50]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; k=1; for(int i=0;i<n;i++) { k=lcm(k,a[i],gcd(k,a[i])); } cout<<k<<endl; return 0; }
求多个数的最大公约数
#include<iostream> #include<stdio.h> using namespace std; int gcd(int n,int m) { return m>0?gcd(m,n%m):n; } int lcm(int n,int m,int r) { return n*m/r;//n,m分别是两个数,r是两个数的最大公约数 } int main() { int n,k; int a[50]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; k=gcd(a[0],a[1]); for(int i=2;i<n;i++) { k=gcd(k,a[i]); } cout<<k<<endl; return 0; }
当初的梦想实现了吗,事到如今只好放弃吗~