写两个函数,分别求两个正整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数m和n(0<m,n≤1000)由键盘输入。
要求定义和调用函数gcd(m,n)计算m和n的最大公约数,定义和调用函数lcm(m,n)计算m和n的最小公倍数
输入
两个正整数m和n(0<m,n≤1000)
输出
最大公约数 最小公倍数
函数
int gcd(int m,int n){
return n ? gcd(n, m % n) : m;
}
int lcm(int m,int n){
return (m*n)/gcd(m,n);
}
ac代码
#include"stdio.h"
int gcd(int m,int n);
int lcm(int m,int n){
return (m*n)/gcd(m,n);
}
int main(){
int m,n;
scanf("%d %d",&m,&n);
printf("%d %d",gcd(m,n),lcm(m,n));
}
int gcd(int m,int n){
int c;
c=m%n;
while(c){
m=n;
n=c;
c=m%n;
}
return n;
}
乱序数组:
int n_gcd(int* nums, int numsSize){
for (int i = 1; i < numsSize; ++i) {
nums[0]= gcd(nums[0],nums[i]);
}
return nums[0];
}
int n_lcm(int* nums, int numsSize){
for (int i = 1; i < numsSize; ++i) {
nums[0]= lcm(nums[0],nums[i]);
}
return nums[0];
}