700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ACMNO.7 输入两个正整数m和n 求其最大公约数和最小公倍数。 输入 两个整数

ACMNO.7 输入两个正整数m和n 求其最大公约数和最小公倍数。 输入 两个整数

时间:2018-05-29 05:40:00

相关推荐

ACMNO.7  输入两个正整数m和n 求其最大公约数和最小公倍数。  输入  两个整数

题目描述

输入两个正整数m和n,求其最大公约数和最小公倍数。

输入

两个整数

输出

最大公约数,最小公倍数

样例输入

5 7

样例输出

1 35

来源/分类

C语言

示例照片:

设计思路:

本题最难的就是,寻找的算法~(简单的也叫做算法)最大公约数:1,首先最大最大,就只是二者中的最小的一位数啦呗!所以我们整个先决条件:if(a>=t)i=t;elsei=a;令i等于其中最小的一个!进行下面来筛选:do{if(a%i==0&&t%i==0){max=i;break;}i--;}while(i>0);二者中最小的数,每一次循环就减去一。为零的时候,循环结束!碰到二者都可以取%运算为零的时候!赶紧break。要不只会是结果为1!这样就可以取得最大公约数啦!最小公倍数:先决条件:i=1;不断增加,极端情况会出现最小公倍数是二者的乘积!所以以这个界限为限定条件!道理都是取%运算!do{if(i%a==0&&i%t==0){min=i;break;}i++;}while(i<=a*t);这样就可以获得最小公倍数啦!

整体代码:

#include<iostream>using namespace std;int main(){int a,t,min,max;int i;cin>>a>>t;if(a>=t)i=t;elsei=a;do{if(a%i==0&&t%i==0){max=i;break;}i--;}while(i>0);i=1;do{if(i%a==0&&i%t==0){min=i;break;}i++;}while(i<=a*t);cout<<max<<" "<<min;}

图片:

OJ执行结果:

ACMNO.7 输入两个正整数m和n 求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数 最小公倍数 样例输入 5 7 样例输出 1 35

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。