ACMNO.22 C语言-公约公倍2 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 输入 两个数 输出 最大公约数 最小公倍数

版权声明:转载请声明原文链接地址,谢谢! https://blog.csdn.net/weixin_42859280/article/details/85008023

题目描述

写两个函数,分别求两个整数的最大公约数和最小公倍数,
用主函数调用这两个函数,并输出结果两个整数由键盘输入。

输入

两个数

输出

最大公约数 最小公倍数

样例输入

6 15

样例输出

3 30

来源/分类

C语言 

题目截图:
在这里插入图片描述
思路:

求最大的:
进行%运算,所以不能先从1,0开始必须从2直接开始!
然后,进行比较。把最小的数赋值给参与运算的数!
满足这个条件:if(a%i==0&&b%i==0)
就直接break,结束循环!
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;
	}
求最小的:
思路跟之前的类似!
这个只需要从2开始进行寻找就好啦!
同样满足这个条件就会结束循环!不过谁被%就发生变化啦!	if(i%a==0&&i%b==0)
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;
}

代码:

#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;
}

代码截图:
在这里插入图片描述
运行结果:
在这里插入图片描述
OJ结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42859280/article/details/85008023