编程,求最大公约数和最小公倍数
发布网友
发布时间:2022-04-26 12:15
我来回答
共8个回答
热心网友
时间:2022-04-26 13:44
#include <stdio.h>
int main()
{
int a,b,c,m,t;
printf("请输入两个数:\n");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
m=a*b;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
printf("最大公约数是:\n%d\n",b);
printf("最小公倍数是:\n%d\n",m/b);
}
扩展资料
算法思想
利用格式输入语句将输入的两个数分别赋给 a 和 b,然后判断 a 和 b 的关系,如果 a 小于 b,则利用中间变量 t 将其互换。
再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输出。
#include<stdio.h>是在程序编译之前要处理的内容,称为编译预处理命令。编译预处理命令还有很多,它们都以“#”开头,并且不用分号结尾,所以是c语言的程序语句。
热心网友
时间:2022-04-26 15:02
#include <stdio.h>
int GCD(int m, int n)
{
int r = m % n;
while (r != 0)
{
m = n;
n = r;
r = m % n;
}
return n;
}
int main()
{
int m, n;
printf("输入两个正整数: ");
scanf("%d %d", &m, &n);
int r = GCD(m, n);
printf("最大公约数: %d\n", r);
printf("最小公倍数: %d\n", m*n/r);
return 0;
}
//会了么?
热心网友
时间:2022-04-26 16:37
#include "stdio.h"
main()
{
int max,min;
int p;
int m,n,i;
scanf("%d %d",&m,&n);
p=m;
if(p>n)
{p=n;}
for(i=p;i>=1;i--)
{
if(m%i==0 && n%i==0)
{
max=i;
break;
}
}
min=m*n/max;
printf("max=%d,min=%d",max,min);
}
热心网友
时间:2022-04-26 18:28
最大公约数用辗转求余计算,a,b输入,最后跳出循环的a就是最大公约数
while(b!=0)
{
temp=b;
b=a%b;
a=temp;
}
最小公倍数:A * B / 最大公约数
热心网友
时间:2022-04-26 20:36
#include <stdio.h>
int zdgys(int a,int b);
int zxgbs(int a,int b);
void main()
{
int a,b,c,d;
printf("输入两个正整数:");
scanf("%d%d",&a,&b);
c=zdgys(a,b);
d=zxgbs(a,b);
printf("最大公约数%d\n最小公倍数%d\n",c,d);
}
int zdgys(int a,int b)
{
int z,i;
if(a>b) z=b;
else z=a;
for(i=z;i>0;i--)
if(a%i==0&&b%i==0)
return (i);
}
int zxgbs(int a,int b)
{
int k,j;
if(a>b) k=a;
else k=b;
for(j=k;j>0;j++)
if(j%a==0&&j%b==0)
return (j);
}
热心网友
时间:2022-04-26 23:01
// 最大公约数
int *(int m, int n)
{
return n == 0 ? m : *(n, m % n) ;
}
// 最小公倍数
int lcm(int m, int n)
{
return m * n / *(m, n) ;
}
热心网友
时间:2022-04-27 01:42
//确保m和n都是正整数
//做除法有点不厚道
int zdgys(int m, int n){
return m * n / zxgbs(m, n);
}
int zxgbs(int m, int n){
while(m && n){
if(m > n)
m=m % n;
else
n=n % m;
}
return m == 0 ? n : m;
}
热心网友
时间:2022-04-27 04:40
//---------------------------------------------------------------------------
#include <stdio.h>
int *(int a,int b)
{
if (!b) return a;
else return *(b,a%b);
}
int main(void)
{
int a,b,Gcd;
scanf("%d%d",&a,&b);
printf("GCD:%d\n",Gcd=*(a,b));
printf("L.C.M:%ld\n",a*b/Gcd);
return 0;
}
//---------------------------------------------------------------------------