1. c语言题目:写一个求最大公约数和最小公倍数的函数。并调用函数。
#include <stdio.h>
void main()
{
int a,b;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
int gys(int a,int b);
int gbs(int a,int b);
printf("最大公约数=%d",gys(a,b));
printf("最小公倍数=%d",gbs(a,b));
}
int gys(int a,int b)
{
int gys,i;
for(i=1;i<=a&&i<=b;i++)
if(a%i==0&&b%i==0)
gys=i;
return(gys);
}
int gbs(int a,int b)
{
int gbs;
gbs=a*b/gys(a,b);
return(gbs);
}
2. c语言函数调用求最大公约数和最小公倍数
最大公约数:(辗转相除法)int MaxDenominator(int a,int b){if(a%b==0) return b;return MaxDenominator(b,a%b);}最小公倍数:int MinMultiple(int a,int b){return a*b/MaxDenominator(a,b); //要用到最大公约数算法}
最大公约数:(辗转相除法)int MaxDenominator(int a,int b){if(a%b==0) return b;return MaxDenominator(b,a%b);}最小公倍数:int MinMultiple(int a,int b){return a*b/MaxDenominator(a,b); //要用到最大公约数算法}
3. 怎么求两个数的最大公约数 用c语言编写
int a[1001], b[1001], n,m;
long result = 1;
输入n,a,m, b
int i, j;
for (i = 0; i<n; i++)
{
for(j=0; j<m; j++) {
int t = gccd(a[i], b[j]);
if (t>1) {
result = (result * t) %100000000;
b[j] /= t;
a[i] /= t;
}
}
}
输出:result
int gccd(int a, int b)
{
if(b == 0) return a;
return gccd(b, a%b);
}