Problem F: 最大公约数、最小公倍数
Description
输入两个正整数m和n,输出m、n的最大公约数和最大公倍数。先计算最大公约数,m和n得乘积除以最大公约数,就得到了最小公倍数。其中最大公约数可以用穷举法求得,也可以用辗转相除法求得。
Input
两个正整数m和n,空格隔开
Output
m、n的最大公约数和最小公倍数。
提示:一般地说,求最小公倍数用两个数的积除以最大公约数即可,而求最大公约数有多种算法:
1. 穷举法1,从1开始直到较小的数,每个数进行判断,如果是公约数就保留此数到变量max中,最后留下的就是最大公约数
2.穷举法2,从较小数由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数。
3.辗转相除法,又名欧几里德算法,是计算最大公约数和最小公倍数的重要方法,比穷举法简便得多。
主要过程是设两数为a,b,
1)a除以b得余数àc;
2)如果c不等于0则:
bàa,càb,回到1);
Sample Input
12 48
20 12
Sample Output
12 48
4 60
#include<stdio.h>
int fact(int a, int b)
{
if (b == )
{
return a;
}
else
{
return fact(b, a% b);
}
}
int main()
{
int m,n,max,min;
while(scanf("%d %d",&m,&n)!=EOF)
{
max=fact(m,n);
min=m*n/max;
printf("%d %d\n",max,min);
}
return ;
}
实现辗转相除法通常有两种思路,分别如下
1、使用循环实现
function gcd(number1, number2){
// 创建一个表示余数的变量
var remainder = ;
// 通过循环计算
do {
// 更新当前余数
remainder = number1 % number2;
// 更新数字1
number1 = number2;
// 更新数字1
number2 = remainder;
} while(remainder !== );
return number1;
}
2、使用函数递归
function gcd(number1, number2) {
if (number2 == ) {
return number1;
} else {
return gcd(number2, number1 % number2);
}
}
Problem F: 最大公约数、最小公倍数的更多相关文章
- 实验12:Problem F: 求平均年龄
Home Web Board ProblemSet Standing Status Statistics Problem F: 求平均年龄 Problem F: 求平均年龄 Time Limit: ...
- The Ninth Hunan Collegiate Programming Contest (2013) Problem F
Problem F Funny Car Racing There is a funny car racing in a city with n junctions and m directed roa ...
- Codeforces Gym 100500F Problem F. Door Lock 二分
Problem F. Door LockTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/at ...
- Codeforces Gym 100002 Problem F "Folding" 区间DP
Problem F "Folding" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/ ...
- Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
Problem F. Fibonacci SystemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...
- Problem F: Exponentiation
Problem F: ExponentiationTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 4 Solved: 2[Submit][Status][W ...
- Problem F: 合唱比赛开始了!
Problem F: 合唱比赛开始了! Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 440 Solved: 201[Submit][Status][ ...
- 几何入门合集 gym101968 problem F. Mirror + gym102082 Problem F Fair Chocolate-Cutting + gym101915 problem B. Ali and Wi-Fi
abstract: V const & a 加速 F. Mirror 题意 链接 问题: 有n个人在y=0的平面上(及xoz平面).z=0平面上有一面镜子(边平行于坐标轴).z=a平面上有q个 ...
- Problem F Plug It In!
题目链接:https://cn.vjudge.net/contest/245468#problem/F 大意:给你插座和电器的对应关系,有多个电器对应一个插座的情况,但是一个插座只能供一个电器使用,现 ...
随机推荐
- HDU 1166 敌兵布阵 (树状数组 单点修改+区间查询)
题目链接 Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和T ...
- python笔记之BytesIO
1. 什么是BytesIO BytesIO与StringIO类似,不同的是StringIO只能存放string,BytesIO是用来存放bytes的,它提供了在内存中读写字节的能力. 即在内存中读写字 ...
- Impala笔记之通用命令
help help命令用于查询其它命令的用法 [quickstart.cloudera:21000] > help select; Executes a SELECT... query, fet ...
- oracle数据库的date和timestamp类型
1.date类型存储数据的格式为年月日时分秒,可以精确到秒 timestamp类型存储数据的格式为年月日时分秒,可以精确到纳秒(9位) 2.date类型 Date类型的数据可以显示到年月日,也可以显示 ...
- Angular 2.0 基础:服务
什么是服务(Service) 在Angular 2 中我们提到的服务 service 一般指的是 哪些能够被其他组件或者指令调用的 单一的,可共享的 代码块.当然,通过服务可以将数据和组件分开,这样就 ...
- C++类型转换 -- 由其他类型转换到自定义类型
由其他类型转换到自定义类型 由其他类型(如int,double)向自定义类的转换是由构造函数来实现,只有当类的定义和实现中提供了合适的构造函数,转换才能通过. /******************* ...
- (转)USB体系结构
转载地址:http://blog.ednchina.com/zenhuateng/203584/Message.aspx USB总线接口层:物理连接.电气信号环境.信息包传输机制:主机一方由USB主控 ...
- 64_n1
NFStest-2.1.5-0.fc26.noarch.rpm 16-Feb-2017 16:19 544018 NLopt-2.4.2-11.fc26.i686.rpm 13-Feb-2017 23 ...
- 关于ORA-04091异常的出现原因,以及解决方案
问题分析 在Oracle中执行DML语句的时候是需要显示进行提交操作的.当我们进行插入的时候,会触发触发器执行对触发器作用表和扩展表的种种操作,但是这个时 候触发器和插入语句是在同一个事务管理中的,因 ...
- Redis安装和客户端cli常见操作
安装Redis $ wget http://download.redis.io/releases/redis-4.0.6.tar.gz $ tar xzf redis-4.0.6.tar.gz $ c ...