...最大公约数和最小公倍数,用主函数调用这两个函数,并输

发布网友

我来回答

4个回答

热心网友

#include<stdio.h>//0和任意的一个数的最大公约数就是那个数(最小公倍数就是0)

int yue(int x,int y)

{

int m,t;

if(y>x)

{

t=x;//将x与y的值交换

x=y;

y=t;

}

while(y!=0)

{

m=x%y;

x=y;

y=m;

}

return x;

}

int bei(int x,int y,int p)

{

return(x*y/p);

}

int main()

{

int yue(int,int);

int bei(int,int,int);

int p,q,a,b;

printf("请输入两个整数:");

scanf("%d%d",&a,&b);

q=yue(a,b);

p=bei(a,b,q);//最小公倍数=两数的乘积除以它们的最大公约数

printf("最大公约数是:%d\n最小公倍数是:%d\n",q,p);

}

扩展资料:

#include<iostream>

using namespace std;

int i;

int max(int a,int b)

{

//cout<<"max";

int s;s=i=2;

//cout<<s<<endl;

if(a>b)

{

i=b;

}

else

i=a;

do{

if(a%i==0&&b%i==0)

{

//cout<<"do里面的s!"<<s<<endl;

//cout<<"do里面的i!"<<i<<endl;

s=i;

break;

}

i--;

}while(i<a&&i<b);

//cout<<"end的s!"<<s<<endl;

//cout<<"end的i!"<<i<<endl;

return s;

}

int min(int a,int b)

{

//cout<<"min";

int s;s=1;i=2;

do{

if(i%a==0&&i%b==0)

{

//cout<<"do里面的s!"<<s<<endl;

//cout<<"do里面的i!"<<i<<endl;

s=i;break;

}

i++;

}while(i<=a*b);

//cout<<"end的s!"<<s<<endl;

//cout<<"end的i!"<<i<<endl;

return s;

}

int main()

{

int x,y,m,n;

cin>>x>>y;

m=max(x,y);n=min(x,y);

cout<<m<<""<<n;

}

热心网友

#include<stdio.h>
#include<conio.h>
main()
{
int m, n,x,mina,max=0,a,b,s,min;
printf("请输入两个整数:");
scanf_s("%d%d",&m, &n);
s = m*n;
min = s;
if (m >= n)
{
mina = n;
n = m;
m = mina;
}
for (x = 1; x <= m; x++)
{
if (m%x == 0 & n%x == 0)
{
if (x > max)
max = x;
}
}
for (a = 1; a <= s; a++)
{
for (b = 1; b <= s; b++)
{
if (m*a == n*b)
{
if (m*a <= min)
min = m*a;
}
}
}
printf("最大公约数是%d\n最小公约数是%d", max,min);
_getch();

}

热心网友

/*函数一(公约数)*/ gys(int a,int b){int s,min;
if(a<b)min=a;else min=b;
for("s=min;s>=2;s++"){if(b%s&&a%s==0)break;if(s==2){s=null;break;}}if(s>min)printf("无公约数");
return s;
}

gbs(int a, int b){ int s,max; if(a<b)max=b;else max=b;
for(s=max;;s++) {if(s%a==0&&s%b==0)break;} return s; }

热心网友

#include <stdio.h>
void main ()
{
  int m,n;
  int divisor (int m, int n);//函数声明
  int multiple (int m, int n);//函数声明
  printf ("请输入两个数(用空格隔开):");
  scanf ("%d %d",&m,&n);
  printf ("这两个数的最大公约数是:%d\n",divisor(m,n));
  printf ("最小公倍数是:%d\n",multiple(m,n));
}int divisor (int m, int n)
{
 int t;
 if (n > m)
 {
  t = m;
  m = n; 
  n = t;
 }
 while (n != 0)
 {
  t = m%n;
  m = n;
  n = t;
 }
 return m;
}int multiple (int m, int n)
{
   int divisor (int m, int n);//函数声明
   return (m * n)/divisor(m,n);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com