写两个函数,分别求两个整数的最大公约数和最小公倍数

描述

请你编写两个函数,分别用于计算给定两个正整数的最大公约数和最小公倍数。其中,最大公约数(Greatest Common Divisor,简称GCD)是指能够同时整除给定两个整数的最大正整数;而最小公倍数(Least Common Multiple,简称LCM)则是指能够同时被给定两个整数整除的最小正整数。

输入

输入包含两个正整数a和b,以空格分隔。(1 ≤ a,b ≤ 10^9)

输出

输出包含两行,每行一个整数,分别为a和b的最大公约数和最小公倍数。如果输入的不是正整数,则输出"Invalid input!"。

输入样例 1

复制代码
10 25

输出样例 1

复制代码
5
50

输入样例 2

复制代码
24 36

输出样例 2

复制代码
12
72

输入样例 3

复制代码
-6 8

输出样例 3

复制代码
Invalid input!
cpp 复制代码
#include <iostream>
#include <cmath>
using namespace std;
int GCD(int a, int b)
{
	int min = (a < b) ? a : b;
	int G=0;
	for (int i = 1; i <= min; i++)
	{
		if (a % i == 0 && b % i == 0)
			G = i;
	}
	return G;
}
int LCM(int a, int b)
{
	int L = 0;
	int max = (a > b) ? a : b;
	for (int i = max;; i++)
	{
		if (i % a == 0 && i % b == 0)
		{
			L = i;
			break;
		}
	}
	return L;
}
int main()
{
	int a, b;
	cin >> a >> b;
	if (a < 1 || b<1 || a % 1 != 0 || b % 1 != 0 || b>pow(10, 9))
	{
		cout << "Invalid input!";
	}
	else cout << GCD(a, b) << endl << LCM(a, b);
	return 0;
}
相关推荐
似水এ᭄往昔2 小时前
【C++】--封装红⿊树实现mymap和myset
开发语言·数据结构·c++·算法·stl
charlie1145141912 小时前
嵌入式现代C++教程:C++98——从C向C++的演化(3)
c语言·开发语言·c++·笔记·学习·嵌入式
moonquakeTT2 小时前
C++:深拷贝与浅拷贝
c++
程序员zgh2 小时前
C语言 指针用法与区别(指针常量、常量指针、指针函数、函数指针、二级指针)
c语言·开发语言·jvm·c++
冉佳驹2 小时前
C++ ——— 仿函数的使用、继承方式、赋值转换规则、菱形继承与虚继承
c++·继承·virtual·仿函数·菱形继承·模板特化·虚继承
咔咔咔的3 小时前
955. 删列造序 II
c++
xu_yule3 小时前
算法基础(数论)—欧拉函数
c++·算法·欧拉函数
xu_yule3 小时前
算法基础(数学)—数论
c++·算法·数论·最大公约数和最小公倍数·质数的判定·筛质数
Sheep Shaun3 小时前
二叉搜索树(下篇):删除、优化与应用
数据结构·c++·b树·算法
superman超哥3 小时前
仓颉借用检查器工作原理深度解析
c语言·开发语言·c++·python·仓颉